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 SubSo 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]