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

Forumthread: ListBox Füllen mit Werten aus Tabelle

ListBox Füllen mit Werten aus Tabelle
24.09.2013 12:51:08
Jens
Hallo
dieses Forum hat mir Bislang immer weitergeholfen, nur dieses mal Sitze ich fest!
Dies ist der Ausgehende Beitrag
https://www.herber.de/forum/archiv/744to748/745662_ListBox_in_Textbox_uebertragen.htmlDas Beispiel funktioniert bei mir auch, nur habe ich das Problem mit dem Füllen der Richtigen Daten.
Ich habe vor, die Listbox mit mehreren Textbausteinen zu füllen. d.H aus einem FRM kommt eine Listbox, welche die Kundendaten beinhalten Soll.
Das Datenblatt Kundendaten ist wie folgt aufgebaut
ab der Vierten Zeile ergänzen sich die Felder wie folgt:
A = Kundenummer
B = Firma
C = Name
D = Vorname
E = Adresse
F = Plz
G = Stadt
Dies ist meine Kundendatenbank. Die sich mit weiteren Aufträgen natürlich auch erweitert.
Dies ist der Code zu VB
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Text = ListBox1.List(ListBox1.ListIndex, 0)
TextBox2.Text = ListBox1.List(ListBox1.ListIndex, 1)
TextBox3.Text = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4.Text = ListBox1.List(ListBox1.ListIndex, 3)
TextBox5.Text = ListBox1.List(ListBox1.ListIndex, 4)
TextBox6.Text = ListBox1.List(ListBox1.ListIndex, 5)
TextBox7.Text = ListBox1.List(ListBox1.ListIndex, 6)
TextBox8.Text = ListBox1.List(ListBox1.ListIndex, 7)
End Sub

Private Sub UserForm_Activate()
With ListBox1
.ColumnCount = 8
.ColumnWidths = "2,2cm;3,5cm;4cm;1,8cm;1,5cm;3cm;0,5cm;1,8cm"
.Clear
End With
For zeile = 1 To 20
ListBox1.AddItem
For spalte = 1 To 8
ListBox1.List(zeile - 1, spalte - 1) = "Z" & zeile & "Sp" & spalte
Next
Next
End Sub
Wie muss ich vorgehen bei
--> ListBox1.List... das ich die 7 Zellen aufrufe und diese dann später wieder Schreiben kann.
Viele grüße Jens Tix

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ListBox Füllen mit Werten aus Tabelle
24.09.2013 13:10:55
Rudi
Hallo,
ich verstehe deine Frage nicht.
Gruß
Rudi

AW: ListBox Füllen mit Werten aus Tabelle
24.09.2013 13:31:54
Jens
Hallo Rudi,
Ich habe das Problem, das ich nicht in Das Datenblatt komme um Z.b. in der Listbox die Daten anzeigen zu Lassen,
Ich möchte gerne das in der Listbox die Daten der Kunden in einer Zeile angezeigt werden.
Sobald ich aber was in ListBox1.List ändere bekomme ich nur Fehlermeldungen.
In der Listbox sollen die Zeile so ausehen
KDN FIRMA NAME VORNAME STRAßE PLZ ORT
Aus den Spalten:
A = Kundenummer
B = Firma
C = Name
D = Vorname
E = Adresse
F = Plz
G = Stadt
Userbild
Welche sich im Tabellenblatt "Kundendaten" im Selben Arbeitsblatt befinden!
nicht wie Momentan die Namen z1re1
Userbild
Vielen dank schonmal im Vorraus.

Anzeige
AW: ListBox Füllen mit Werten aus Tabelle
24.09.2013 13:37:09
Rudi
Hallo,
with sheets("kundendaten")
listbox1.List=.Range(.cells(2,1),.cells(.rows.count,1).end(xlup)).resize(,7).Value
end with
Gruß
Rudi

AW: ListBox Füllen mit Werten aus Tabelle
25.09.2013 09:44:21
Jens
Guten Morgen,
alles gut vielen vielen lieben Dank! Zumindest funktioniert jetzt der Übertrag und die List-box ist gefüllt.
Jedoch habe ich nun noch das Problem, das ja die Listbox alle Einträge enthält, die meine Kundendatenbank enthält.
Jetzt würde ich gerne in die Listbox Klicken können und z.b nur eine Frase eingeben wie z.b wie ein Teil der Telefonnummer und die Listbox soll mir zum passenden eintrag Springen.
D.H. Genau soll es so sein, das ich Anfange zu schreiben "42" und jedesmal wenn ich ne zahl "427" eingebe soll er zu dem passendem Item springen?!
Oder muss ich das über eine Suchfunktion lösen?
Viele liebe grüße Jens
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ListBox Füllen mit Werten aus Tabelle


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne Excel und erstelle eine UserForm. Füge eine ListBox und mehrere TextBoxen hinzu, um die Daten anzuzeigen.

  2. Datenblatt vorbereiten: Stelle sicher, dass deine Kundendaten in einem Blatt namens "Kundendaten" ab Zeile 4 organisiert sind. Die Spalten sollten wie folgt belegt sein:

    • A: Kundennummer
    • B: Firma
    • C: Name
    • D: Vorname
    • E: Adresse
    • F: PLZ
    • G: Stadt
  3. VBA-Code für das Füllen der ListBox: Öffne den VBA-Editor und füge den folgenden Code in das UserForm ein:

    Private Sub UserForm_Activate()
       With ListBox1
           .ColumnCount = 7
           .Clear
           Dim ws As Worksheet
           Set ws = ThisWorkbook.Sheets("Kundendaten")
           .List = ws.Range("A4:G" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row).Value
       End With
    End Sub
  4. Doppelklick-Event für die ListBox: Füge den Code hinzu, um die Daten in die TextBoxen zu übertragen, wenn ein Eintrag in der ListBox doppelt angeklickt wird:

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
       Dim idx As Long
       idx = ListBox1.ListIndex
       If idx <> -1 Then
           TextBox1.Text = ListBox1.List(idx, 0) ' Kundennummer
           TextBox2.Text = ListBox1.List(idx, 1) ' Firma
           TextBox3.Text = ListBox1.List(idx, 2) ' Name
           TextBox4.Text = ListBox1.List(idx, 3) ' Vorname
           TextBox5.Text = ListBox1.List(idx, 4) ' Adresse
           TextBox6.Text = ListBox1.List(idx, 5) ' PLZ
           TextBox7.Text = ListBox1.List(idx, 6) ' Stadt
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: ListBox bleibt leer: Stelle sicher, dass der Code im UserForm_Activate korrekt ist und das richtige Arbeitsblatt referenziert wird.
  • Fehler: Index außerhalb des Bereichs: Überprüfe, ob der ListIndex beim Doppelklick gültig ist. Wenn kein Element ausgewählt ist, kann dies zu einem Fehler führen.
  • Fehler: Daten werden nicht angezeigt: Stelle sicher, dass die Daten im richtigen Format in der Tabelle stehen und die Range korrekt eingestellt ist.

Alternative Methoden

Eine alternative Methode, um eine ListBox in Excel VBA zu füllen, besteht darin, die Daten aus einer anderen Tabelle zu beziehen. Hierzu kannst du den folgenden VBA-Code verwenden:

Private Sub UserForm_Activate()
    With ListBox1
        .ColumnCount = 7
        .Clear
        .List = ThisWorkbook.Sheets("AndereTabelle").Range("A1:G10").Value
    End With
End Sub

Diese Methode ist nützlich, wenn du Daten aus einer anderen Tabelle nutzen möchtest.


Praktische Beispiele

Wenn du eine Kundendatenbank hast, die regelmäßig aktualisiert wird, kannst du den Code anpassen, um die ListBox automatisch mit den neuesten Daten zu füllen. Hier ist ein Beispiel zur Verwendung einer Suchfunktion:

Private Sub TextBox_Suchfeld_Change()
    Dim suchbegriff As String
    suchbegriff = TextBox_Suchfeld.Text
    ListBox1.Clear
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Kundendaten")

    Dim i As Long
    For i = 4 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        If InStr(1, ws.Cells(i, 1).Value, suchbegriff, vbTextCompare) > 0 Then
            ListBox1.AddItem ws.Cells(i, 1).Value ' Kundennummer
            ListBox1.List(ListBox1.ListCount - 1, 1) = ws.Cells(i, 2).Value ' Firma
            ' Weitere Spalten hinzufügen
        End If
    Next i
End Sub

Tipps für Profis

  • Verwende Named Ranges: Dies erleichtert das Verwalten von Daten und macht den Code flexibler.
  • Filtere direkt in der ListBox: Wenn du die ListBox so anpasst, dass sie automatisch nach bestimmten Kriterien filtert, kannst du die Benutzerfreundlichkeit erhöhen.
  • Arbeite mit Ereignissteuerung: Nutze Ereignisse, um die ListBox dynamisch zu aktualisieren, wenn sich die zugrunde liegenden Daten ändern.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox so anpassen, dass sie nur bestimmte Spalten anzeigt? Du kannst die ColumnCount-Eigenschaft und die ColumnWidths-Eigenschaft anpassen, um nur die gewünschten Spalten in der ListBox anzuzeigen.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren. Achte darauf, dass du die entsprechenden Berechtigungen zum Ausführen von Makros hast.

3. Kann ich die ListBox auch mit Daten aus einer externen Quelle füllen? Ja, du kannst die ListBox mit Daten aus externen Datenquellen wie Datenbanken oder CSV-Dateien füllen, indem du die entsprechenden Verbindungs- und Leseoperationen im VBA-Code implementierst.

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