ich möchte in einer ComboBox das Verzeichnis z.b. C\Excel\Gertrud\*.* einlesen
geht das ?
Gruss Walter
Private Sub UserForm_Initialize()
Dim i As Long
With Application.FileSearch
.LookIn = "C:\Excel\Gertrud\"
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
ComboBox1.AddItem .FoundFiles(i)
Next i
End With
End Sub
Sub testDialog()
strPfad = Application.GetOpenFilename( _
"Exceldateien (*.xls), *.xls, Alle Dateien (*.*), *.*", 1, _
"Exceldateien auswählen...", MultiSelect:=False)
MsgBox strPfad
ChDir "C:\Excel\Getrud"
strPfad = Application.GetOpenFilename( _
"Exceldateien (*.xls), *.xls, Alle Dateien (*.*), *.*", 1, _
"Exceldateien auswählen...", MultiSelect:=False)
MsgBox strPfad
End Sub
Sub testDialog()
Dim strPfad As String
ChDir "C:\Excel\Getrud"
strPfad = Application.GetOpenFilename( _
"Exceldateien (*.xls), *.xls, Alle Dateien (*.*), *.*", 1, _
"Exceldateien auswählen...", MultiSelect:=False)
If strPfad = "Falsch" or strPfad = "False" Then Exit Sub
Workbooks.Open FileName:=strPfad
End Sub
Sub testDialog()
Application.Dialogs(xlDialogOpen).Show
End Sub
Um ein Verzeichnis in eine ComboBox in Excel einzulesen, kannst du den folgenden VBA-Code verwenden. Dieser ermöglicht es dir, alle Dateien aus einem bestimmten Verzeichnis anzuzeigen.
ALT + F11
).Private Sub UserForm_Initialize()
Dim i As Long
With Application.FileSearch
.LookIn = "C:\Excel\Gertrud\"
.FileType = msoFileTypeAllFiles
.Execute
For i = 1 To .FoundFiles.Count
ComboBox1.AddItem .FoundFiles(i)
Next i
End With
End Sub
Fehler: ComboBox bleibt leer
Lösung: Überprüfe den Pfad in .LookIn
. Stelle sicher, dass das Verzeichnis existiert und dass du die richtigen Berechtigungen hast.
Fehler: "FileSearch" nicht gefunden
Lösung: Diese Methode ist in neueren Excel-Versionen nicht mehr verfügbar. Verwende stattdessen die Dir
-Funktion, um Dateien aufzulisten.
Fehler: Ungültige Datei ausgewählt
Lösung: Achte darauf, dass du den richtigen Dateityp im Filter angibst und dass die Datei existiert.
Eine alternative Möglichkeit, Dateien auszuwählen, besteht darin, den Öffnungsdialog zu verwenden. Hier ist ein Beispiel:
Sub testDialog()
Dim strPfad As String
strPfad = Application.GetOpenFilename( _
"Exceldateien (*.xls), *.xls, Alle Dateien (*.*), *.*", 1, _
"Exceldateien auswählen...", MultiSelect:=False)
If strPfad <> "Falsch" Then
Workbooks.Open FileName:=strPfad
End If
End Sub
Eine andere Methode ist die Verwendung von Application.Dialogs
:
Sub testDialog()
Application.Dialogs(xlDialogOpen).Show
End Sub
Hier ist ein weiteres Beispiel zur Integration einer ComboBox mit der Möglichkeit, ausgewählte Dateien zu öffnen:
Private Sub CommandButton1_Click()
Dim strPfad As String
strPfad = ComboBox1.Value ' Wert aus der ComboBox
If strPfad <> "" Then
Workbooks.Open FileName:=strPfad
Else
MsgBox "Bitte wähle eine Datei aus."
End If
End Sub
In diesem Beispiel wird eine Schaltfläche erstellt, die die ausgewählte Datei öffnet, wenn sie angeklickt wird.
Verwende Dir
-Funktion: Um eine Liste von Dateien in einem Verzeichnis zu erstellen, kannst du die Dir
-Funktion verwenden. Diese ist effizienter und funktioniert in allen Excel-Versionen.
FileDialog verwenden: Für eine bessere Benutzererfahrung kannst du den FileDialog
-Objekt verwenden, um den Benutzern die Auswahl von Dateien zu erleichtern:
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
If fd.Show = -1 Then
' Datei wurde ausgewählt
MsgBox fd.SelectedItems(1)
End If
1. Wie kann ich Unterverzeichnisse einlesen?
Du kannst eine rekursive Funktion schreiben, um auch Unterverzeichnisse zu durchsuchen. Die Dir
-Funktion kann in einer Schleife verwendet werden, um alle Dateien in einem Verzeichnis und dessen Unterverzeichnissen zu erfassen.
2. Funktioniert das in allen Excel-Versionen?
Die genannten Methoden funktionieren in den meisten Excel-Versionen, aber einige Funktionen wie FileSearch
sind in neueren Versionen nicht mehr verfügbar. Verwende die Dir
-Funktion als zuverlässige Alternative.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen