Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Listbox Einträge in Tabelle schreiben

VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 15:16:47
Bernd
Hallo zusammen,
komme leider nicht weiter und bräuchte mal Hilfe.
Folgendes Problem: Suchbegriff der SpalteF, z.B. a,b,c,d,e oder f, von Tabelle "Daten" in Texbox der Userform "frm_Suchen" eingeben, alle Ergebnisse in Listbox füllen und bei Klick auf Button alle Listbox Einträge in TabD in erste freie Zeile schreiben.
Vielen Dank schon mal im Voraus!!!
Musterdatei: https://www.herber.de/bbs/user/123592.xlsm
Userbild
Office Version 2016 Pro 32bit - Windows10 Pro 64 bit
"Wenn du jemanden ohne Lächeln triffst, schenke ihm dein's!"
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 16:29:38
Oberschlumpf
Hi Bernd
hier, versuch mal
https://www.herber.de/bbs/user/123595.xlsm
Dein Userform startet + es werden alle Einträge aus "Daten" in der Listbox gezeigt.
Wenn du in die Textbox nun einen Suchwert einträgst + Enter drückst (oder auf den neuen Button "Suchen" klickst), wird...
...die Listbox geleert
...und nur die Einträge, die in Daten!F mit dem Suchwert übereinstimmen, werden in der Listbox angezeigt.
Nach Klick auf Button "Daten in neue Tabelle" werden die Werte aus den gewünschten Spalten in die Tabelle TabD übertragen - immer in die nächste. leere Zeile.
Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 17:06:15
Bernd
Hallo Thorsten,
Danke für deine Hilfe. Sie funktioniert. Aber leider hatte ich vergessen zu erwähnen, dass der Suchbegriff nicht am Anfang der Zelle, sondern irgend wo mittendrin. Daher funktioniert der Code nicht in meiner Originaldatei. In der Listbox wird nichts angezeigt.
Kannst du mir da helfen?
Lieben Gruß aus Bremen
Bernd
Anzeige
AW: VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 18:09:56
Oberschlumpf
Hi Bernd
dann brauch ich von dir ne neue Bsp-Datei, die in der Spalte F nicht nur a b c usw enthält, sondern ganze Wörter, in denen dein "Suchwert" a oder b oder c usw enthalten ist.
Ciao
Thorsten
AW: VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 18:21:05
Bernd
Hallo Thorsten,
Sorry für die Umstände, hab mich vorher etwas ungenau ausgedrückt.
Hier die neue Musterdatei: https://www.herber.de/bbs/user/123598.xlsm
Lieben Gruß
Bernd
Anzeige
AW: VBA: Listbox Einträge in Tabelle schreiben
27.08.2018 23:23:24
Bernd
Hallo Thorsten,
ja, genauso !!!
Danke für deine Bemühungen.
Liebe Grüße aus Bremen
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Einträge aus einer Listbox in eine Tabelle übertragen


Schritt-für-Schritt-Anleitung

Um Einträge aus einer Listbox in eine Excel-Tabelle zu übertragen, folge diesen Schritten:

  1. Userform Erstellen: Öffne den VBA-Editor (Alt + F11) und füge eine neue Userform hinzu. Nenne sie frm_Suchen.

  2. Textbox und Listbox hinzufügen: Füge eine Textbox (txt_Suchbegriff) und eine Listbox (lst_Eintraege) zur Userform hinzu.

  3. Button hinzufügen: Platziere einen Button (btn_Suchen) für die Suche und einen weiteren Button (btn_Übertragen) zum Übertragen der Listbox-Einträge in die Tabelle.

  4. Code für die Suche: Im Code-Editor der Userform, füge folgenden Code für den btn_Suchen Button ein:

    Private Sub btn_Suchen_Click()
        Dim ws As Worksheet
        Dim Suchwert As String
        Dim Zelle As Range
        Dim gefundeneEintraege As Collection
        Set ws = ThisWorkbook.Sheets("Daten")
        Set gefundeneEintraege = New Collection
    
        Suchwert = Me.txt_Suchbegriff.Text
    
        ' Listbox leeren
        Me.lst_Eintraege.Clear
    
        ' Durchsuche Spalte F
        For Each Zelle In ws.Range("F1:F" & ws.Cells(ws.Rows.Count, "F").End(xlUp).Row)
            If InStr(1, Zelle.Value, Suchwert, vbTextCompare) > 0 Then
                gefundeneEintraege.Add Zelle.Value
            End If
        Next Zelle
    
        ' Füge gefundene Einträge zur Listbox hinzu
        For Each Eintrag In gefundeneEintraege
            Me.lst_Eintraege.AddItem Eintrag
        Next Eintrag
    End Sub
  5. Code für das Übertragen: Füge folgenden Code für den btn_Übertragen Button ein:

    Private Sub btn_Übertragen_Click()
        Dim ws As Worksheet
        Dim i As Integer
        Set ws = ThisWorkbook.Sheets("TabD")
    
        ' Übertrage Listbox-Einträge in die nächste leere Zeile
        For i = 0 To Me.lst_Eintraege.ListCount - 1
            ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Me.lst_Eintraege.List(i)
        Next i
    End Sub

Häufige Fehler und Lösungen

  • Problem: Die Listbox zeigt keine Ergebnisse an.

    • Lösung: Stelle sicher, dass der Suchbegriff korrekt eingegeben wird und dass er in den Zellen der Spalte F vorhanden ist. Achte darauf, dass InStr die richtige Suche durchführt.
  • Problem: Einträge werden nicht in die Tabelle übertragen.

    • Lösung: Vergewissere Dich, dass die Tabelle TabD existiert und die Zellen nicht gesperrt sind.

Alternative Methoden

Statt eine Userform zu verwenden, kannst Du auch ein einfaches Makro erstellen, das direkt aus einem Modul läuft. Hier ist ein Beispielcode:

Sub EintraegeUebertragen()
    Dim wsDaten As Worksheet
    Dim wsTabD As Worksheet
    Dim Suchwert As String
    Dim Zelle As Range
    Dim Zeile As Long

    Set wsDaten = ThisWorkbook.Sheets("Daten")
    Set wsTabD = ThisWorkbook.Sheets("TabD")
    Suchwert = InputBox("Bitte Suchbegriff eingeben:")

    ' Finde die nächste leere Zeile in TabD
    Zeile = wsTabD.Cells(wsTabD.Rows.Count, 1).End(xlUp).Row + 1

    For Each Zelle In wsDaten.Range("F1:F" & wsDaten.Cells(wsDaten.Rows.Count, "F").End(xlUp).Row)
        If InStr(1, Zelle.Value, Suchwert, vbTextCompare) > 0 Then
            wsTabD.Cells(Zeile, 1).Value = Zelle.Value
            Zeile = Zeile + 1
        End If
    Next Zelle
End Sub

Praktische Beispiele

Hier sind einige nützliche Beispiele:

  1. Suchbegriff eingeben: Wenn der Suchbegriff "Test" lautet, wird die Listbox mit allen Einträgen gefüllt, die "Test" enthalten.
  2. Einträge übertragen: Klicke auf den "Übertragen"-Button, um alle gefundenen Einträge in die Tabelle TabD zu übertragen.

Tipps für Profis

  • Daten validieren: Überprüfe die Eingaben in der Textbox, um sicherzustellen, dass die Benutzer nur gültige Suchbegriffe eingeben.
  • Performance optimieren: Bei großen Datenmengen kann es sinnvoll sein, die Listbox erst nach der vollständigen Suche zu füllen, um die Performance zu verbessern.
  • Fehlermeldungen: Füge Fehlermeldungen hinzu, um die Benutzerfreundlichkeit zu erhöhen, wenn keine Ergebnisse gefunden werden.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um eine andere Spalte zu durchsuchen?
Ändere einfach den Bereich in der For-Each-Schleife von F1:F auf die gewünschte Spalte, z.B. A1:A.

2. Funktioniert dieser Code auch in Excel 2013?
Ja, der Code ist kompatibel mit Excel 2010, 2013 und 2016. Stelle sicher, dass Du die richtige Office-Version verwendest.

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