HERBERS Excel-Forum - die Beispiele

Thema: Ordnerdialog mit nachfolgendem Dateidialog aufrufen

Home

Gruppe

Datei

Problem

Wie kann ich zuerst einen Dialog zur Auswahl eines Verzeichnisses und danach zur Auswahl einer Excel-Datei aus diesem Verzeichnis aufrufen?

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: frmDateiListe

Private Sub cmdWeiter_Click()
  Unload Me
End Sub

Private Sub UserForm_Initialize()
   Dim iCounter As Integer
   Dim sOrdner As String
   sOrdner = GetDirectory("Ein Verzeichnis auswählen!")
   If sOrdner = "" Then
      Unload Me
   Else
      Me.Caption = "Verzeichnis: " & sOrdner
      With Application.FileSearch
         .LookIn = sOrdner
         .FileType = msoFileTypeExcelWorkbooks
         .Execute
         For iCounter = 1 To .FoundFiles.Count
            lstFiles.AddItem .FoundFiles(iCounter)
         Next iCounter
      End With
  End If
End Sub

StandardModule: basMain

Public Type BROWSEINFO
   hOwner As Long
   pidlRoot As Long
   pszDisplayName As String
   lpszTitle As String
   ulFlags As Long
   lpfn As Long
   lParam As Long
   iImage As Long
End Type

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
   Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" _
   Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg As String) As String
   Dim bInfo As BROWSEINFO
   Dim Path As String
   Dim r As Long, x As Long, pos As Integer
   bInfo.pidlRoot = 0&
   If IsMissing(Msg) Then
      bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
   Else
      bInfo.lpszTitle = Msg
   End If
   bInfo.ulFlags = &H1
   x = SHBrowseForFolder(bInfo)
   Path = Space$(512)
   r = SHGetPathFromIDList(ByVal x, ByVal Path)
   If r Then
      pos = InStr(Path, Chr$(0))
      GetDirectory = Left(Path, pos - 1)
   Else
      GetDirectory = ""
   End If
End Function

Sub DialogAufruf()
   frmDateiListe.Show
End Sub

Beiträge aus dem Excel-Forum zu den Themen Datei und Dialog

Excel/PDF Datei unter bestimmten Pfad abspeichern aus excel Worddatei nach Wert durchsuchen
Split-Funktion beim Einlesen TXT-Datei Datei löschen mit unterschiedlichen Zahlen im Name
Datei löschen mit unterschiedlichen Zhalen im Name geöffnete Worddatei und Word aus Excel beenden
Excel-Datei nicht im Projekt-Explorer Suche nach jüngster Datei
Mehrere Zellen in mehreren Dateien ersetzen Datei öffnen mit variablen im Namen
Vergleichen zweier Dateien und aktualisieren Datei langsam durch Formel
Dateien aus Unterordner öffnen Daten import aus txt--Datei
Dateipfad öffnen mit VBA Datei-Verknüpfungen
Masterdatei erschaffen? Mehrere Datenblätter als PDF-Datei ausgeben
Makro bei Erstellen einer Datei aus einer Vorlage Zusammenführung aus mehreren Dateien
Rechteck per Button in andere Datei einfügen. Alle Dateien in einem Unterordner öffnen
VBA: MsgBox: yes/no. Bei yes andere Datei öffnen Mehrere txt Dateien einlesen in ein Programm
VBA Datei als .txt speichern Excel Datei in CSV Datei wandeln mit Extras
aktierten Text in geöffnete Worddatei Spalte in andere Dateien kopieren + zurückkopieren
Aus einer CSV-Datei ein bestimmtes Layout erzeugen Daten ausgew. WS in 2. Datei zusammenführen
Per VBA aktuelle Datei in Autostart-Ordner csv Dateien importieren
Makrodatei als Software hochwertiger gestalten manuelles Speichern bei schreibgeschützter Datei
Daten aus geschlossener Datei in Zieldatei kopiere xlDialogInsertHyperlink.show
Dateinamen per VBA vorgeben (Datum: Vormonat) Ordner mit Unterordnern/Dateien kopieren
Auswertung über mehrere Dateien Geschlossene Excel-Datei bearbeiten?
datei öffnen durch vba ohne makroaktivierung Datei öffnet im Entwurfsmodus
Dateinamen der ausgelesenen Datei anzeigen Dateien vergleichen-doppelte löschen
Datendatei per Doppelklick einlesen Hyperlink auf Excel-Datei funktioniert nicht
Kopieren über 2 Dateien? Dateiinfo aller Dateien in allen Verz./Unterverz
Excel Datei