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

Verzeichnis in ComboBox einlesen

Forumthread: Verzeichnis in ComboBox einlesen

Verzeichnis in ComboBox einlesen
Walter
Hallo,
ich möchte in einer ComboBox das Verzeichnis z.b. C\Excel\Gertrud\*.* einlesen
geht das ?
Gruss Walter
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Verzeichnis in ComboBox einlesen
ChrisL
Hi 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

Gruss
Chris
Anzeige
Danke
Walter
Hallo Chris,
danke für die Unterstützung.
ES funktioniert, habe noch eine blöde Frage:
Ich habe in einer "ALTEN" Excel Makro4 !!! mal so eine UserForm erstellt (wie gesagt Alt), wobei ich links mir das Laufwerk angezeigt habe, rechts im Listenfeld dann die entsprechenden Dateien und darüber dann die Datei die ich angeklickt habe.
Nun konnte ich die Datei aufrufen oder auch löschen etc.
Gibts sowas in UserForm ?
Gruss Walter
Anzeige
AW: Danke
ChrisL
Hi Walter
Schau mal den Befehl "Dialogs" an...
Application.Dialogs(xlDialogOpen).Show
Das gleiche gibt es auch für SaveAs.
Gruss
Chris
AW: Wo ? in Recherche ?
Walter
Hallo Chris,
soll ich in der Recherche nachsehen ?
Gruss Walter
Noch einmal ...
Walter
Hallo Chris,
habe noch folgendes (außer deins) gefunden:

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

Habe CHDir geändert, erfreulicherweise kommt der Öffnungsdialog, klicke ich eine Datei an wird diese allerdings nicht in die Dateiname: (Zeile) gesetzt und ich kann diese nicht öffnen, wieso ?
Gruss Walter
Anzeige
AW: Noch einmal ...
ChrisL
Hi Walter
So geht es auch... müsstest noch wie folgt ergänzen...

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

... oder ...

Sub testDialog()
Application.Dialogs(xlDialogOpen).Show
End Sub

Gruss
Chris
Anzeige
Super Danke
15.04.2004 17:53:34
Walter
Hallo Chris,
danke für den Tip.
Gruss Walter
P.S. kann erst morgenfrüh testen
Danke getestet, funktioniert !!!
Walter
Hallo Chris,
alles getestet und funktioniert prima,
danke
Gruss Walter
Danke für die Rückmeldung o.T.
ChrisL
.
Anzeige
AW: Verzeichnis in ComboBox einlesen
ANdreas
Hallo Walter,
was möchtest Du denn genau einlesen? Unterverzeichnisse und/oder alle Excel-Dateien, und/oder alle Dateien?
Vielleicht hilft Dir auch schon das Beispiel in der Excel-FAQ von Hans. Du musst dann nur mit AddItem der Combobox zufügen, statt es in die Tabelle zu schreiben:
http://xlfaq.herber.de/texte/024398h.htm
Viel Spaß,
Andreas
Anzeige
Danke Andreas
15.04.2004 14:41:28
Walter
Hallo Andreas,
dank für die Info.
Funktioniert genau wie bei Chris,
Danke Walter
;
Anzeige

Infobox / Tutorial

Verzeichnis in ComboBox einlesen


Schritt-für-Schritt-Anleitung

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.

  1. Öffne die Excel-Anwendung und wechsle in den VBA-Editor (drücke ALT + F11).
  2. Füge ein neues UserForm hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "UserForm" wählst.
  3. Füge eine ComboBox zu deinem UserForm hinzu.
  4. Füge den folgenden VBA-Code in das UserForm ein:
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
  1. Schließe den VBA-Editor und führe das UserForm aus.

Häufige Fehler und Lösungen

  • 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.


Alternative Methoden

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

Praktische Beispiele

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.


Tipps für Profis

  • 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

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige