Input-Box

Hallo Leute,
ein weiteres Problem hat sich bei mir aufgetan. Und zwar, möchte ich gerne einen variablen Pfad angeben können, für den Fall dass ich die komplette Liste brenne und die Ordnerstruktur die vorgegeben war, sich verändert. Nun habe ich das mit einer InputBox versucht, nur scheint es nicht zu funktionieren. Hab mich an die Hilfe von VB gehalten, aber es wird kein Wert übergeben.
Kann mir denn einer von euch weiterhelfen?
MfG Sebastian

Hallo Sebastian,

die Syntax für die Inputbox sieht beispielhaft so aus:

Sub InputBoxlesen()
 Dim Pfad As String
 Pfad = InputBox("Bitte Pfad eingeben: ", "Ordnerstruktur", "Vorgabepfad")
 If Pfad = "" Then Exit Sub 'Abbrechen wurde gewählt
 MsgBox "eingegebener Pfad: " & Pfad
End Sub

So funktioniert die Eingabe unter EXCEL97 einwandfrei

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sebastian,

die Syntax für die Inputbox sieht beispielhaft so aus:

Sub InputBoxlesen()
Dim Pfad As String
Pfad = InputBox("Bitte Pfad eingeben: ", „Ordnerstruktur“,
„Vorgabepfad“)
If Pfad = „“ Then Exit Sub 'Abbrechen wurde gewählt
MsgBox "eingegebener Pfad: " & Pfad
End Sub

So funktioniert die Eingabe unter EXCEL97 einwandfrei

Gruß
Franz

steht mir diese variable dann auch in anderen tabellenblättern zur verfügung?

ich wollte den pfad nämlich für mehrere tabellenblätter nutzen, die alle verlinkungen habe auf einen ordner, der extern liegt…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

steht mir diese variable dann auch in anderen tabellenblättern
zur verfügung?

ich wollte den pfad nämlich für mehrere tabellenblätter
nutzen, die alle verlinkungen habe auf einen ordner, der
extern liegt…

Hi Sebastian,

Sub InputBoxlesen()
Dim Pfad As String
Pfad = InputBox("Bitte Pfad eingeben: ", „Ordnerstruktur“, „Vorgabepfad“)
If Pfad = „“ Then Exit Sub 'Abbrechen wurde gewählt
Worksheets(„Merker“).Range(„a1“)=Pfad
End Sub

Und in deinen Verlinkungen musst du dich mit INDIREKT() auf Merker!A1 beziehen.
Gruß
Reinhard

gibt es denn nicht sowas wie eine globale variablendeklaration, die man dann übernehmen kann?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

steht mir diese variable dann auch in anderen tabellenblättern
zur verfügung?

ich wollte den pfad nämlich für mehrere tabellenblätter
nutzen, die alle verlinkungen habe auf einen ordner, der
extern liegt…

gibt es denn nicht sowas wie eine globale
variablendeklaration, die man dann übernehmen kann?

Hallo Sebastian,

wenn die Variable in einem Modul als Public deklariert wird, dann sollte es funktionieren.

Public Pfad

Sub InputBoxlesen()
 Pfad = InputBox("Bitte Pfad eingeben: ", "Ordnerstruktur", "Vorgabepfad")
 If Pfad = "" Then Exit Sub 'Abbrechen wurde gewählt
 MsgBox "eingegebener Pfad: " & Pfad
End Sub

Gruß
Franz

Vom Prinzip her will ich einfach nur diesen eingegebenen Pfad nehmen, ihn in einer art globalen Variable zwischenspeichern und ihn dann einfach vor zb zu öffnende bilder anhängen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

gibt es denn nicht sowas wie eine globale variablendeklaration, die man dann übernehmen kann?

Hi Sebastian,
das geht, aber aus Excel kommste ohne vba da nicht dran, also den Inhalt von „Pfad“. D.h. du musst die Verlinkugen in Excel auch per Makro setzen.

Public Pfad As String

Sub InputBoxlesen()
Pfad = InputBox("Bitte Pfad eingeben: ", „Ordnerstruktur“, „Vorgabepfad“)
If Pfad = „“ Then Exit Sub 'Abbrechen wurde gewählt
End Sub

Jetzt ist Pfad in allen Modulen gültig.
Gruß
Reinhard

Vom Prinzip her will ich einfach nur diesen eingegebenen Pfad
nehmen, ihn in einer art globalen Variable zwischenspeichern
und ihn dann einfach vor zb zu öffnende bilder anhängen.

Hi Sebastian,
globale Variablen haben den Nachteil, beim nächsten Öffnen der Datei sind sie leer. Also böte sich doch an sie auch in einer Zelle zu speichern in Before_close().

Alternativ so, ungetestet:

In DieseArbeitsmappe

Option Explicit
Private Sub Workbook\_Open()
Pfad = ThisWorkbook.CustomDocumentProperties("Pfadgespeichert")
End Sub

**In ein allgemeines Modul (z.B.:Modul1)**

Option Explicit
Public Pfad As String

Sub InputBoxlesen()
Dim Eingabe
Eingabe = InputBox("Bitte Pfad eingeben: ", "Ordnerstruktur", "Vorgabepfad")
If Eingabe = "" Then Exit Sub 'Abbrechen wurde gewählt
Pfad = Eingabe
ThisWorkbook.CustomDocumentProperties("Pfadgespeichert") = Pfad
End Sub

Sub einmaliglaufenlassen()
ThisWorkbook.CustomDocumentProperties.Add \_
 Name:="Pfadgespeichert", \_
 LinkToContent:=False, \_
 Type:=msoPropertyTypeString, \_
 Value:=""
End Sub

jo, danke, hatte ich auch gerade gelesen und entdeckt…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]