AW: Pfadangabe
29.11.2006 08:43:56
fcs
Hallo Mike,
leider gibt es in Excel bzw. VBA keinen Standarddialog zu Auswahl eines Ordners.
Wenn du deinen beschriebenen Komfort einrichten möchtest, dann müßtest du hier im Archiv mal nach entsprechenden Beiträgen suchen (Stichworte: Ordner +Dialog +Auswahl). Du wirst relativ komplizierte Prozeduren finden, bei denen ich mit Excel97/Win98 allerdings zum Teil Probleme hatte. Für einen VBA-Anfänger leider nicht ganz trivial.
Folgende Variante ermöglicht die Auswahl eines Ordners über den Dateiauswahl-Dialog.
Gruß
Franz
Sub Test()
Dim PfadEinstellungen As String
'..Code
PfadEinstellungen = "C:\Test"
If MsgBox("Aktueller Pfad für Einstellungen:" & vbLf & vbLf & PfadEinstellungen & vbLf & vbLf _
& "Verzeichnis ändern?", vbYesNo, "Verzeichnis Einstellungen") = vbYes Then
PfadEinstellungen = OrdnerAuswahl(PfadEinstellungen, "Beliebige Datei im Ordner mit Einstellungsdateien öffnen", True)
If PfadEinstellungen = "" Then Exit Sub 'Abbrechen wurde gewählt
End If
'...Code
End Sub
Function OrdnerAuswahl(ByVal VorgabePfad As String, _
Optional ByVal Fenstertitel As String = "Dateiauswahl", _
Optional ByVal Abbrechen As Boolean = False)
' Ordner wird mit Hilfe des Dateiauswahlkatalogs ausgewählt
'Abbrechen stellt ein ob bei Klick auf Abbrechen der Vorgabepfad (False) oder ein Leerstring (True) zurückgegeben wird
Dim aktPfad As String
aktPfad = CurDir$ 'aktuellen Pfad merken
ChDir VorgabePfad
OrdnerAuswahl = Application.GetOpenFilename(FileFilter:="Datei(*.*),*.*", Title:=Fenstertitel)
If OrdnerAuswahl = False Then
If Abbrechen = True Then
OrdnerAuswahl = ""
Else
OrdnerAuswahl = VorgabePfad
End If
Exit Function
Else
'Dateinamen vom Rückgabewert abbtrennen
OrdnerAuswahl = Left(OrdnerAuswahl, Len(Application.WorksheetFunction.Substitute(OrdnerAuswahl, "\" & Dir(OrdnerAuswahl), "")))
' OrdnerAuswahl = Left(OrdnerAuswahl, Len(Replace(OrdnerAuswahl, "\" & Dir(OrdnerAuswahl), ""))) 'für neuere Excelversionen
End If
ChDir aktPfad 'aktuellen Pfad wieder herstellen
End Function