Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA FolderPicker Start-Pfad anzeigen

Forumthread: VBA FolderPicker Start-Pfad anzeigen

VBA FolderPicker Start-Pfad anzeigen
15.02.2025 14:53:02
Joschi Witchcraft
Hallo Forum,

mit "Application.FileDialog(msoFileDialogFolderPicker)" möchte ich ein Verzeichnis auswählen.

.AllowMultiSelect = False
.Title = HdrTitel
.InitialFileName = StartOrdner
.ButtonName = "Verzeichnis wählen"

Frage: was muss ich ändern, damit in der Zeile über dem Button "Verzeichnis wählen" der StartOrdner angezeigt wird?

Gruß Joschi
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA FolderPicker Start-Pfad anzeigen
15.02.2025 15:13:49
RPP63
Moin!
Du musst die Variable StartOrdner korrekt füllen.

Gruß Ralf
Beispiel
15.02.2025 15:19:17
RPP63
Sub test()

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Dingenskirchen"
.InitialFileName = "E:\aktueller Stand"
.ButtonName = "Verzeichnis wählen"
.Show
End With
End Sub


ergibt

Userbild
Anzeige
AW: Beispiel
15.02.2025 15:28:20
Joschi Witchcraft
Problem erkannt. Ich freue mich immer, wenn als Antwort ein wenig Code-Zeilen dabei sind.

Mein Problem ist gelöst. Mein Fehler war, dass hinter dem Pfadnamen noch ein "\" war. Kaum ist der weg, funktioniert es wie geplant.

Allen, die mir geantwortet haben, herzlichen Dank - und ein schönes Wochenende.

Gruß Joschi
Anzeige
AW: Beispiel
15.02.2025 15:38:21
Joschi Witchcraft
Ich bin es noch einmal.

Zwar wird mir der Pfadname des Start-Pfades a(Unterverzeichnis) angezeigt. Doch wenn ich keine Änderung vornehme, bekomme ich ( bei .show) die Nachricht, "Pfad ist nicht vorhanden". Wenn ich dann in der Überschrftszeile, wo der gesamte Pfad angezeigt wird, auf dieses Unterverzeichnis klicke, dann bekomme ich die Fehlernachricht nicht.

Gruß Joschi
Anzeige
AW: Beispiel
15.02.2025 16:15:06
Ulf
Hi
Sub test()

'Der initiale Pfad MUSS vorhanden sein und mit \ abgeschlossen
'sonst ist das ein Dateiname
Dim Startordner As String
Startordner = "c:\users\" & Environ("USER") & "\Documents\"
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = "Dingenskirchen"
.InitialFileName = Startordner
.ButtonName = "Verzeichnis wählen"
If Not .Show Then
MsgBox "Nix"
Exit Sub
End If
MsgBox .SelectedItems(1)
End With
End Sub

hth
Ulf
Anzeige
AW: Beispiel
15.02.2025 16:25:20
Joschi Witchcraft
Hallo Ulf.

Danke für Dein Beispiel.

So hatte ich das ja bisher, dass der Pfadname mit einem "\" abgeschlossen hatte. Doch mit dieser Schreibweise wird der ausgewählte Pfadname( Startordner) in der entsprechenden Zeile über den Buttons nicht angezeigt.

So auch bei Deinem Beispiel.

Bei meinem Test wird aber nicht ein Datei-Name beanstandet, sonden der Pfad. "Pfad ist nicht vorhanden"

Gruß Joschi
Anzeige
AW: Beispiel
15.02.2025 17:29:01
peter
Hallo

Versuch mal



Sub test()
'Der initiale Pfad MUSS vorhanden sein und mit \ abgeschlossen
'sonst ist das ein Dateiname
Dim Startordner As String
Startordner = "c:\users\" & Environ("USERNAME") & "\Documents\"
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = Startordner
.InitialFileName = Startordner
.ButtonName = "Verzeichnis wählen"
If Not .Show Then
MsgBox "Nix"
Exit Sub
End If
MsgBox .SelectedItems(1)
End With
End Sub

Peter

Anzeige
AW: Beispiel
15.02.2025 17:59:02
Joschi Witchcraft
Hallo Peter.

Danke für Deinen Code. Allerdings wird auch bei diesem Code der Startordner nicht in der unteren Zeile angezeigt. Wenn ich dann eines der angebotenen Unterverzeichnisse anklicke, wird dieser Name in der unteren Zeile eingetragen.

Es geht nicht um die Funktionalität, sonden lediglich um das logische "Aussehen".

Gruß Joschi
Anzeige
Dafür könntest du...
16.02.2025 16:04:27
Case
Moin, :-)

... es mit der "Shell.BrowseForFolder-Methode" probieren: ;-)
Option Explicit

Public Sub Main()
Dim objFolder As Object
Dim objShell As Object
Dim varDir As Variant
Dim strTMP As String
On Error GoTo Fin
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Temp\")
'Set varDir = objShell.BrowseForFolder(0, "Ordner auswählen", &H1 + &H10 + &H20)
Set varDir = objShell.BrowseForFolder(0, "Ordner auswählen", &H1 + &H10 + &H20, objFolder.Self)
If Not varDir Is Nothing Then strTMP = varDir.Self.Path
If strTMP > "" And Left(strTMP, 2) > "::" Then
If Right(strTMP, 1) > "\" Then strTMP = strTMP & "\"
MsgBox strTMP
End If
Fin:
Set objFolder = Nothing
Set objShell = Nothing
Set varDir = Nothing
If Err.Number > 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub

Zwecks der Parameter (&H1 + &H10 + &H20) kannst du dich im Netz schlau machen. ;-)

Wie immer haben Dialoge ihren Stärken und Schwächen bzw. Besonderheiten. ;-)

Dieser Dialog bietet keine Möglichkeit "nach oben" zu wechseln. Theoretisch. Praktisch kannst du im Eingabefeld jeden vorhandenen gültigen Pfad eingeben. ;-)

Du kannst das Eingabefeld aber auch ausblenden. ;-)

Oder du startest ohne Vorgabeordner (auskommentierte Codezeile). Dann wird alles angezeigt. ;-)

Schau die die "Spielerei" mal an. ;-)

Servus
Case

Anzeige
AW: Dafür könntest du...
16.02.2025 16:31:32
Joschi Witchcraft
Hallo Case,

Auch Dir herzlichen Dank für Dein Beispiel. Die Einschränkungen habe ich bemerkt. Die Methode hat einige Nachteile. Die Frage ist, ob man die Nachteile in Kauf fnehmen möchte, nur damit das vorgegebene Unterverzeichnis in der unteren Zeile eingesetzt wird.

Wenn man ein ungültiges Verzeichnis angibt, dann läuft die Routine in die Error-Routine, anstatt dem Benutzer eine "grundlegende" Auswahl anzubieten.

Ich werde das Beispiel in meine Sammlung aufnehmen.

Den Thread werde ich jetzt beenden.

Gruß Joschi
Anzeige
AW: VBA FolderPicker Start-Pfad anzeigen
15.02.2025 15:14:11
ralf_b
indem du der Variable StartOrdner einen passenden Pfad zuweist.
also wenn mein Startordner z.b. "F:\testx" ist, dann steht in der Zeile "testx"
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18