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

Forumthread: wert aus tabelle suchen und zeile in listbox ausge

wert aus tabelle suchen und zeile in listbox ausge
Peter
hallo Zusammen,
bin schon seit 2 Wochen auf der Suche nach einem geeigneten Makro, dass ich mir eigentich selbst für meine Zwecke umsrticken wollte. Leider hat das nicht geklappt.
Folgendes habe ich vor bzw. habe ich zum Teil
UserForm mit einer Textbox1, 1 Command button, und einer Listbox.
Nn der Textbox möchte ich den Suchbegriff eingeben. Dieser soll in Spalte B gesucht werden.
Alle Treffer sollen nun in der Listbox aufgelistet werden sowie die zugehörigen Werte aus z.B. Spalte D, G und H.
Kann mich bitte jemdand hierbei unterstützen.
Nachfolgend mal mein bisheriger Code, der allerdings nicht richtig funktioniert. Wenn ich den Suchbegriff konkretisiere zeigt mir Excel keine Werte an.
Auf jeden Fall komme ich jetzt gar nicht mehr klar. Vielleicht entdeckt jemand den Fehler in dem Code oder kann mir evtl. einen neuen fehlerfreien Code mit auf den Weg geben.
An der Stelle schon mal Danke!
Beispiel:
Suchbegriff: GJZ250
Listbox:-------------------Wert1--Wert2--Wert3
GJZ25066 -------------------8------7------- 3
GJZ25070-------------------12-----55------- 44
Soweit so gut
Wenn ich den Suchbegriff nun genauer bestimme zeigt mir Excel keinen Wert mehr an
Beispiel:
Suchbegriff: GJZ25066
Listbox:-------------------Wert1--Wert2--Wert3
GJZ25066 ----------------------------------------
Gruß
Peter

Private Sub CommandButton1_Click() 'Anpassen
'Button Suchen
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim I As Integer ' Zeile
I = 0
s = Trim(TextBox1.Text) 'Sucheingabe über Textbox1 steuern
If s = "" Then Exit Sub
ListBox1.Clear
With ActiveSheet
Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
If Not Found Is Nothing Then
FirstAddress = Found.Address
ListBox1.ColumnCount = 10 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
ListBox1.AddItem Found 'fügt ersten Treffer hinzu
' ListBox1.List(I, 1) = Cells(Found.Row, 3)
' I = I + 1
Do
Found.Activate
Set Found = Cells.FindNext(after:=ActiveCell)
On Error Resume Next
If Found.Address = FirstAddress Then Exit Do
ListBox1.AddItem Found
ListBox1.List(I, 1) = Cells(Found.Row, 4)
ListBox1.List(I, 2) = Cells(Found.Row, 6)
ListBox1.List(I, 3) = Cells(Found.Row, 7)
ListBox1.List(I, 4) = Cells(Found.Row, 8)
ListBox1.List(I, 5) = Cells(Found.Row, 9)
I = I + 1
Loop
End If
End With
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: wert aus tabelle suchen und zeile in listbox ausge
01.06.2011 23:19:02
Oberschlumpf
Hi Peter
Bsp-Datei?
Ciao
Thorsten
AW: wert aus tabelle suchen und zeile in listbox ausge
02.06.2011 02:44:31
fcs
Hallo Peter,
damit auch bei nur noch einem Treffer die anderen Spaltenwerte noch angezeigt werden nuss du die Prozedur ein wenig umstricken.
Gruß
Franz
 Private Sub CommandButton1_Click() 'Anpassen
'Button Suchen
Dim s As String
Dim Found As Range
Dim FirstAddress As String
Dim I As Integer ' Zeile
On Error Resume Next
I = 0
s = Trim(TextBox1.Text) 'Sucheingabe über Textbox1 steuern
If s = "" Then Exit Sub
ListBox1.Clear
With ActiveSheet
Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
If Not Found Is Nothing Then
FirstAddress = Found.Address
ListBox1.ColumnCount = 10 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
Do
ListBox1.AddItem Found
ListBox1.List(I, 1) = Cells(Found.Row, 4)
ListBox1.List(I, 2) = Cells(Found.Row, 6)
ListBox1.List(I, 3) = Cells(Found.Row, 7)
ListBox1.List(I, 4) = Cells(Found.Row, 8)
ListBox1.List(I, 5) = Cells(Found.Row, 9)
Set Found = Cells.FindNext(after:=Found)
If Found.Address = FirstAddress Then Exit Do
I = I + 1
Loop
End If
End With
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Wert aus Tabelle suchen und in ListBox ausgeben


Schritt-für-Schritt-Anleitung

Um einen Wert aus einer Tabelle zu suchen und die zugehörigen Zeilen in einer ListBox anzuzeigen, kannst Du die folgenden Schritte befolgen:

  1. Erstelle eine UserForm mit einer TextBox (TextBox1), einem CommandButton (CommandButton1) und einer ListBox (ListBox1).

  2. Füge den folgenden VBA-Code in das Code-Fenster der UserForm ein:

    Private Sub CommandButton1_Click() 'Anpassen
        'Button Suchen
        Dim s As String
        Dim Found As Range
        Dim FirstAddress As String
        Dim I As Integer ' Zeile
        On Error Resume Next
        I = 0
        s = Trim(TextBox1.Text) 'Sucheingabe über Textbox1 steuern
        If s = "" Then Exit Sub
        ListBox1.Clear
        With ActiveSheet
            Set Found = .Cells.Find(what:=s, LookAt:=xlPart)
            If Not Found Is Nothing Then
                FirstAddress = Found.Address
                ListBox1.ColumnCount = 10 'Gibt die Werte der gefundenen Treffer an (Spaltenbezogen)
                Do
                    ListBox1.AddItem Found
                    ListBox1.List(I, 1) = Cells(Found.Row, 4)
                    ListBox1.List(I, 2) = Cells(Found.Row, 6)
                    ListBox1.List(I, 3) = Cells(Found.Row, 7)
                    ListBox1.List(I, 4) = Cells(Found.Row, 8)
                    ListBox1.List(I, 5) = Cells(Found.Row, 9)
                    Set Found = Cells.FindNext(after:=Found)
                    If Found.Address = FirstAddress Then Exit Do
                    I = I + 1
                Loop
            End If
        End With
    End Sub
  3. Teste die Anwendung, indem Du einen Suchbegriff in die TextBox eingibst und auf den Button klickst. Die Treffer sollten jetzt in der ListBox angezeigt werden.


Häufige Fehler und Lösungen

  • Problem: Keine Werte angezeigt
    Wenn Excel keine Werte anzeigt, könnte das daran liegen, dass der Suchbegriff nicht exakt mit den Einträgen in der Tabelle übereinstimmt. Achte darauf, dass der Suchbegriff in der TextBox so eingegeben wird, dass er mit den Werten in Spalte B übereinstimmt.

  • Problem: Nur ein Treffer wird angezeigt
    Um sicherzustellen, dass auch bei nur einem Treffer die anderen Spaltenwerte angezeigt werden, verwende den aktualisierten Code, den Franz bereitgestellt hat.


Alternative Methoden

Eine alternative Methode zur Suche in einer Tabelle könnte die Verwendung von Excel-Formeln wie SVERWEIS oder FILTER sein. Diese Methoden sind jedoch nicht so flexibel wie ein VBA-Skript, wenn es darum geht, mehrere Werte in einer ListBox anzuzeigen.


Praktische Beispiele

Angenommen, Du hast folgende Daten in Deiner Excel-Tabelle:

B D G H
GJZ25066 8 7 3
GJZ25070 12 55 44

Wenn Du "GJZ250" in die TextBox eingibst, solltest Du die Ergebnisse in der ListBox wie folgt sehen:

Wert1    Wert2    Wert3
GJZ25066 8        7       3
GJZ25070 12       55      44

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine umfassendere Fehlerbehandlung, um unerwartete Eingaben abzufangen und dem Benutzer hilfreiche Fehlermeldungen anzuzeigen.
  • Datenvalidierung: Verwende Datenvalidierung in der TextBox, um sicherzustellen, dass nur relevante Suchbegriffe eingegeben werden.
  • Dynamische Anpassung: Passe die Anzahl der angezeigten Spalten in der ListBox dynamisch an, abhängig von den tatsächlichen Daten in der Tabelle.

FAQ: Häufige Fragen

1. Frage
Was mache ich, wenn die ListBox leer bleibt?
Antwort
Überprüfe den Suchbegriff in der TextBox und stelle sicher, dass er mit den Werten in Spalte B übereinstimmt.

2. Frage
Wie kann ich die Suchfunktion verbessern?
Antwort
Du kannst die LookAt-Eigenschaft im Find-Befehl anpassen, um die Suche präziser zu gestalten (z.B. xlWhole für eine exakte Übereinstimmung).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige