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

Werte in eine Listbox schreiben

Forumthread: Werte in eine Listbox schreiben

Werte in eine Listbox schreiben
09.02.2018 12:44:21
Mia
Hallo zusammen,
ich hoffe mir kann jemand helfen.
Ich habe ein Suchbegriff (der auch öfters auftreten kann), der in der Mappe "Gesamt gesucht wird. Wenn der Suchbegriffe in einer Excel-Mappe gefunden wird, sollen die Werte in der Zeile wo er gefunden wird in eine Listbox geschrieben werden.
Die Suchfunktion funktioniert, aber ich bekomme es nicht hin die Werte in die Listbox zu schreiben. Ich bekomme immer eine Fehlermeldung und ich weiß nicht wie ich es sonst lösen soll:
Private Sub btnSuchen_Click()
Dim rngCell As Range
Dim m_stAddress As String
Dim InI As Integer
Dim InZeile As Integer
With ListBox1
.ColumnCount = 3
.ColumnWidths = "2cm;1cm;4cm"
End With
With Sheets("Gesamt")
InZeile = 2
Set rngCell = Rows.Find(txtSuche, LookIn:=xlValues, lookAt:=xlWhole, MatchCase:=False)
If Not rngCell Is Nothing Then
m_stAddress = rngCell.Address
Do
Set rngCell = Rows.FindNext(rngCell)
InI = rngCell.Row
ListBox1.AddItem .Range("A" & InI)
ListBox1.List(InZeile, 1).AddItem.Range ("G" & InI)
ListBox1.List(InZeile, 2).AddItem.Range ("D" & InI)
ListBox1.List(InZeile, 3).AddItem.Range ("AV" & InI)
InZeile = InZeile + 1
Loop While Not rngCell Is Nothing And rngCell.Address  m_stAddress
Else
MsgBox "Suchbegriff wurde nicht gefunden"
End If
End With
End Sub

Vorab vielen Dank für Eure Unterstützung
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Werte in eine Listbox schreiben
09.02.2018 15:59:16
Sepp
Hallo Mia,
ungetestet!
Private Sub btnSuchen_Click()
  Dim rngCell As Range
  Dim m_stAddress As String

  With Listbox1
    .ColumnCount = 4
    .ColumnWidths = "2cm;2cm;1cm;4cm"
    .Clear
  End With
  
  With Sheets("Gesamt")
    Set rngCell = .Rows.Find(txtSuche, LookIn:=xlValues, lookAt:=xlWhole, MatchCase:=False)
    If Not rngCell Is Nothing Then
      m_stAddress = rngCell.Address
      Do
        Listbox1.AddItem .Range("A" & rngCell.Row)
        Listbox1.List(Listbox1.ListCount - 1, 1) = .Range("G" & rngCell.Row)
        Listbox1.List(Listbox1.ListCount - 1, 2) = .Range("D" & rngCell.Row)
        Listbox1.List(Listbox1.ListCount - 1, 3) = .Range("AV" & rngCell.Row)
        Set rngCell = .Rows.FindNext(rngCell)
      Loop While Not rngCell Is Nothing And rngCell.Address <> m_stAddress
    Else
      MsgBox "Suchbegriff wurde nicht gefunden"
    End If
  End With

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß Sepp

Anzeige
AW: Werte in eine Listbox schreiben
13.02.2018 18:44:32
Mia
Danke, hat wunderbar funktioniert
;
Anzeige
Anzeige

Infobox / Tutorial

Werte in eine Listbox schreiben


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei und gehe zu dem Arbeitsblatt, auf dem sich die Listbox befindet.
  2. Öffne den VBA-Editor: Drücke ALT + F11.
  3. Füge einen Button hinzu, um die Suche auszulösen (Optional).
  4. Doppelklicke auf den Button und füge den folgenden Code ein:
Private Sub btnSuchen_Click()
    Dim rngCell As Range
    Dim m_stAddress As String
    Dim InI As Integer
    Dim InZeile As Integer
    With ListBox1
        .ColumnCount = 4
        .ColumnWidths = "2cm;2cm;1cm;4cm"
        .Clear
    End With
    With Sheets("Gesamt")
        Set rngCell = .Rows.Find(txtSuche, LookIn:=xlValues, lookAt:=xlWhole, MatchCase:=False)
        If Not rngCell Is Nothing Then
            m_stAddress = rngCell.Address
            Do
                ListBox1.AddItem .Range("A" & rngCell.Row)
                ListBox1.List(ListBox1.ListCount - 1, 1) = .Range("G" & rngCell.Row)
                ListBox1.List(ListBox1.ListCount - 1, 2) = .Range("D" & rngCell.Row)
                ListBox1.List(ListBox1.ListCount - 1, 3) = .Range("AV" & rngCell.Row)
                Set rngCell = .Rows.FindNext(rngCell)
            Loop While Not rngCell Is Nothing And rngCell.Address <> m_stAddress
        Else
            MsgBox "Suchbegriff wurde nicht gefunden"
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und teste die Funktionalität, indem du auf den Button klickst.

Häufige Fehler und Lösungen

  • Fehlermeldung bei der Ausführung: Stelle sicher, dass der Listbox-Name (ListBox1) korrekt ist.
  • Listbox bleibt leer: Überprüfe, ob der Suchbegriff wirklich in der Tabelle "Gesamt" vorhanden ist.
  • Falsche Anzahl an Spalten: Achte darauf, dass die ColumnCount im Code mit den tatsächlichen Daten übereinstimmt.

Alternative Methoden

Eine alternative Methode, um Werte in eine Listbox zu schreiben, besteht darin, eine Excel-Tabelle zu nutzen, die die Suchergebnisse automatisch aktualisiert. Dies kann durch eine dynamische Datenverknüpfung oder Pivot-Tabellen erreicht werden. Hierbei wird die Listbox mit den Inhalten der Tabelle verknüpft.


Praktische Beispiele

Angenommen, du hast eine Excel-Tabelle mit den folgenden Spalten: Name (A), Alter (G), Stadt (D), Einkommen (AV). Wenn du nach dem Namen "Max" suchst, wird die Listbox die entsprechenden Werte für Max anzeigen.

ListBox1.AddItem "Max"
ListBox1.List(0, 1) = "30"
ListBox1.List(0, 2) = "Berlin"
ListBox1.List(0, 3) = "50000"

Tipps für Profis

  • Verwende Datenvalidierung, um sicherzustellen, dass nur gültige Suchbegriffe eingegeben werden.
  • Implementiere Fehlerbehandlung in deinem VBA-Code, um unerwartete Fehler elegant abzufangen.
  • Experimentiere mit der Formatierung der Listbox, um die Benutzeroberfläche ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich die Listbox anpassen?
Du kannst die Eigenschaften der Listbox im VBA-Editor anpassen, z.B. die Spaltenbreite oder die Anzahl der Spalten.

2. Was tun, wenn mein Excel abstürzt?
Stelle sicher, dass dein Code keine Endlosschleifen enthält und dass die Excel-Version auf dem neuesten Stand ist.

3. Gibt es eine Möglichkeit, die Listbox zu sortieren?
Ja, du kannst die Daten vor dem Hinzufügen in die Listbox sortieren, indem du ein Array verwendest und es sortierst, bevor du die Werte hinzufügst.

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