Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei öffnen aus Listbox in Userform

Forumthread: Datei öffnen aus Listbox in Userform

Datei öffnen aus Listbox in Userform
23.11.2017 14:00:26
Lisa
Hallo zusammen,
ich habe eine Frage zum öffnen eines Pfades aus der UserForm und ListBox.
Ich lasse mir Dateien in meiner ListBox aus einem Pfad mittels Code anzeigen.
Private Sub UserForm_Initialize()
Const Verz = "C:\Antrag\Reservierungen"
Dim Datei
Dim Ordner
Dim FSO As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Me.ListBox1.Clear
For Each Datei In FSO.getfolder(Verz).Files
Me.ListBox1.AddItem Datei.Name
Next
For Each Ordner In FSO.getfolder(Verz).subfolders
Me.ListBox1.AddItem Ordner.Name
Next
End Sub

Nun wäre es sehr schön, wenn man doppelt auf einen Eintrag der ListBox klickt sich hier auch die Datei öffnen würde.
Besteht diese Möglichkeit? Falls ja, hat jemand eine Lösung für mich?
Liebe Grüße Lisa
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen aus Listbox in Userform
23.11.2017 14:07:26
Crazy
Hallo
das habe ich so getestet
Private Sub ListBox1_Click()
Workbooks.Open "C:\Antrag\Reservierungen\" & ListBox1.Text
End Sub

MfG Tom
AW: Datei öffnen aus Listbox in Userform
23.11.2017 14:15:26
Lisa
Hallo Tom, das ist wahnsinnig schnell gewesen.
vielen Dank für deine Hilfe. funktioniert wie gewünscht
Liebe Grüße Lisa
Anzeige
AW: Datei öffnen aus Listbox in Userform u.filtern
24.11.2017 13:30:20
Lisa
Hallo Tom, hallo alle.
Ich würde hier gern noch eine weitere anschließende Frage nachschieben.
Über eine Textbox1 soll nun in der Listbox gefiltert werden.
Die Einträge in der Listbox werden sehr viele sein und da wäre es schön, wenn man per Suchhilfe, also der TextBox, etwas eingibt und zu dieser Eingabe Ergebnisse markiert werden.
Schön wäre es, wenn man nicht den ganzen Text zur Suche eingeben muss sondern mit der Eingabe die Auswahl immer aktualisiert werden würde um Angebote zur Suchhilfe zu erhalten.
Das wär schön, wenn es funktionieren würde muss aber nicht zwingend.
Vielleicht habt ihr ja auch andere Vorschläge?
Also meine Frage.
Kann man über eine TextBox1, auf der Userform1, in der Listbox1, suchen/filtern? wenn ja wie stelle ich das am Besten an?
Liebe Grüße Lisa
Anzeige
AW: Datei öffnen aus Listbox in Userform u.filtern
25.11.2017 08:31:12
Crazy
Hallo
bei diesem Weg wird nur der Eintrag in der Listbox markiert
auf Groß- und Kleinschreibung achten!
Private Sub TextBox1_Change()
Dim i As Long
Dim n As Long
Dim strSuche As String
strSuche = Textbox1.Text
n = ListBox1.ListCount
For i = 0 To n - 1
If Left(ListBox1.List(i), Len(strSuche)) = strSuche Then
ListBox1.ListIndex = i
Exit Sub
End If
Next i
End Sub
MfG Tom
Anzeige
;
Anzeige

Infobox / Tutorial

Datei öffnen aus Listbox in Userform


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen:

    • Öffne Excel und gehe zu den VBA-Entwicklertools.
    • Erstelle eine neue UserForm (UserForm1) und füge eine ListBox (ListBox1) und eine TextBox (TextBox1) hinzu.
  2. Code zum Initialisieren der ListBox:

    • Füge den folgenden Code in das Code-Fenster der UserForm ein. Dieser Code zeigt alle Dateien und Ordner aus einem angegebenen Verzeichnis an.
    Private Sub UserForm_Initialize()
       Const Verz = "C:\Antrag\Reservierungen"
       Dim Datei
       Dim Ordner
       Dim FSO As Object
       Set FSO = CreateObject("Scripting.filesystemobject")
       Me.ListBox1.Clear
       For Each Datei In FSO.getfolder(Verz).Files
           Me.ListBox1.AddItem Datei.Name
       Next
       For Each Ordner In FSO.getfolder(Verz).subfolders
           Me.ListBox1.AddItem Ordner.Name
       Next
    End Sub
  3. Datei beim Doppelklick öffnen:

    • Füge den folgenden Code hinzu, um eine Datei zu öffnen, wenn du auf einen Eintrag in der ListBox doppelklickst.
    Private Sub ListBox1_DblClick()
       Workbooks.Open "C:\Antrag\Reservierungen\" & ListBox1.Text
    End Sub
  4. Filtern der ListBox:

    • Um die ListBox basierend auf der Eingabe in der TextBox zu filtern, füge den folgenden Code hinzu:
    Private Sub TextBox1_Change()
       Dim i As Long
       Dim n As Long
       Dim strSuche As String
       strSuche = Textbox1.Text
       n = ListBox1.ListCount
       For i = 0 To n - 1
           If Left(ListBox1.List(i), Len(strSuche)) = strSuche Then
               ListBox1.ListIndex = i
               Exit Sub
           End If
       Next i
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Datei öffnet sich nicht:

    • Überprüfe den Pfad in der Workbooks.Open-Methode. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.
  • Fehler: ListBox zeigt keine Einträge:

    • Vergewissere dich, dass der Code im UserForm_Initialize korrekt ausgeführt wird. Teste, ob das Verzeichnis existiert.

Alternative Methoden

  • Statt eine ListBox zu verwenden, könntest du auch eine ComboBox in der UserForm einsetzen. Die Implementierung ist ähnlich, jedoch ermöglicht eine ComboBox eine einfachere Auswahl.

Praktische Beispiele

  • Beispiel 1: Wenn du Dateien aus einem anderen Verzeichnis anzeigen möchtest, ändere den Const Verz Pfad im UserForm_Initialize entsprechend.

  • Beispiel 2: Du kannst die Filterfunktion erweitern, um auch nach einer Teilübereinstimmung zu suchen, indem du InStr statt Left verwendest.


Tipps für Profis

  • Verwende Option Explicit am Anfang jeder Moduldatei, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler in deinem VBA-Code zu vermeiden.

  • Optimiere die Performance, indem du die ListBox vor dem Filtern leer machst, um sicherzustellen, dass nur relevante Einträge angezeigt werden.


FAQ: Häufige Fragen

1. Wie kann ich die UserForm automatisch öffnen?
Du kannst die UserForm beim Öffnen der Arbeitsmappe mit folgendem Code in das ThisWorkbook-Modul einfügen:

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in Excel 2007 und neueren Versionen funktionieren, solange die VBA-Entwicklertools aktiviert sind.

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