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

Forumthread: TextBox in Abh. von ListBox füllen

TextBox in Abh. von ListBox füllen
02.05.2017 14:40:48
ListBox
Guten Tag zusammen,
ist es möglich eine Textbox in Abhängigkeit eines gewählten Eintrages in einer ListBox zu füllen?
https://www.herber.de/bbs/user/113241.xlsm
Habe hier ein kleines Beispiel erstellt: In der Listbox sind Namen aufgeführt, in den TextBoxes 1 und 2 sollen Merkmale zugeordnet werden. Ich hätte nun gerne, dass, wie im Beispiel, bei Auswahl des Namens Kurt das x aus der Tabelle beim Feld Männlich? eingetragen wird. Ich nehme an ich muss eine Art Zähler einbauen, habe es aber leider auch mit Recherche nicht hinbekommen bisher. Kann mir jemand helfen?
Gruß
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: TextBox in Abh. von ListBox füllen
02.05.2017 14:51:58
ListBox
Hi
Private Sub ListBox1_Click()
TextBox1 = Cells(ListBox1.ListIndex + 2, 2)
TextBox2 = Cells(ListBox1.ListIndex + 2, 3)
End Sub
cu
Chris
AW: TextBox in Abh. von ListBox füllen
02.05.2017 14:54:05
ListBox
Hi,
eine Möglichkeit:
Private Sub ListBox1_Click()
Me.TextBox1 = ActiveSheet.Cells(Me.ListBox1.ListIndex + 2, 2)
Me.TextBox2 = ActiveSheet.Cells(Me.ListBox1.ListIndex + 2, 3)
End Sub


Anzeige
AW: TextBox in Abh. von ListBox füllen
02.05.2017 15:03:34
ListBox
Hallo Jogoe,
Kein Zähler, die Position ist durch die ListBox.ListIndex Eigenschaft gegeben.
Diese Codes in die Userform:
Private Sub ListBox1_Change()
TextBox1 = Tabelle1.Cells(2, 1).Offset(ListBox1.ListIndex, 1)
TextBox2 = Tabelle1.Cells(2, 1).Offset(ListBox1.ListIndex, 2)
End Sub
Private Sub UserForm_Activate()
TextBox1 = Tabelle1.Cells(2, 2)
TextBox2 = Tabelle1.Cells(2, 3)
End Sub
Gruess Hansueli
Anzeige
AW: TextBox in Abh. von ListBox füllen
03.05.2017 09:22:13
ListBox
Danke für die Antworten, leider funktioniert das noch nicht. Ich gehe stark davon aus, dass es daran liegt, dass in meinem Beispiel alle Einträge (Namen) auch in der Listbox vorkommen. Im tatsächlichen Beispiel, welches ich leider nicht veröffentlichen darf, habe ich vorangeschaltet je eine ComboBox zur Auswahl von speziellen Kriterien und daraus resultierend eine Auflistung der zutreffenden "Namen". Mir ist natürlich bewusst dass man dazu jetzt keine pauschale Lösung nennen kann, ich werde versuchen das Namensbeispiel zu konkretisieren.
Anzeige
AW: TextBox in Abh. von ListBox füllen
03.05.2017 09:53:01
ListBox
Ich nehme an, du füllst deine ListBox nicht (wie im hochgeladenen Beispiel) durch Angabe der RowSource sondern läufst in einer Schleife über alle Zeilen, prüfst das Kriterium und füllst die ListBox dann mittels AddItem? Schreibe in eine zweite Spalte der ListBox die jeweilige Zeilennummer, dann kannst du auf diese Zeilennummer bei Klick zugreifen.


Anzeige
AW: TextBox in Abh. von ListBox füllen
03.05.2017 13:38:37
ListBox
Danke, ich habs hinbekommen! :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

TextBox in Abhängigkeit von ListBox füllen


Schritt-für-Schritt-Anleitung

Um eine TextBox in Abhängigkeit von einer ListBox in Excel zu füllen, kannst du folgenden VBA-Code verwenden. Dieser sollte in das Code-Modul der UserForm eingefügt werden, die die ListBox und die TextBoxes enthält.

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Füge eine UserForm hinzu: Rechtsklicke im Projektfenster und wähle Einfügen > UserForm.
  3. Füge eine ListBox und zwei TextBoxes hinzu: Ziehe sie aus der Toolbox auf die UserForm.
  4. Kopiere den folgenden Code in das Code-Modul der UserForm:
Private Sub ListBox1_Click()
    Me.TextBox1 = ActiveSheet.Cells(Me.ListBox1.ListIndex + 2, 2)
    Me.TextBox2 = ActiveSheet.Cells(Me.ListBox1.ListIndex + 2, 3)
End Sub

Private Sub UserForm_Activate()
    TextBox1 = Tabelle1.Cells(2, 2)
    TextBox2 = Tabelle1.Cells(2, 3)
End Sub
  1. Schließe den VBA-Editor und teste die UserForm.

Mit diesem Code wird die TextBox1 mit dem Wert aus der zweiten Spalte und die TextBox2 mit dem Wert aus der dritten Spalte der Tabelle gefüllt, basierend auf dem ausgewählten Eintrag in der ListBox.


Häufige Fehler und Lösungen

  • Fehler: Die TextBox bleibt leer.

    • Lösung: Stelle sicher, dass die ListBox korrekt mit Daten gefüllt ist und dass die Indizes korrekt sind (ListIndex + 2).
  • Fehler: Der Code funktioniert nicht, wenn in der ListBox nicht auf alle Namen zugegriffen werden kann.

    • Lösung: Überprüfe, ob du die ListBox richtig füllst. Wenn du die ListBox nicht über RowSource befüllst, verwende AddItem für die Einträge.

Alternative Methoden

Eine alternative Methode besteht darin, die Change-Ereignisprozedur der ListBox zu verwenden. Hier ist ein Beispielcode:

Private Sub ListBox1_Change()
    TextBox1 = Tabelle1.Cells(2, 1).Offset(ListBox1.ListIndex, 1)
    TextBox2 = Tabelle1.Cells(2, 1).Offset(ListBox1.ListIndex, 2)
End Sub

Mit dieser Methode wird die TextBox aktualisiert, sobald der Benutzer einen anderen Eintrag in der ListBox auswählt.


Praktische Beispiele

Wenn du eine Liste von Namen hast, die den Spalten A, B und C in Tabelle1 entsprechen, kannst du die UserForm so gestalten, dass sie die Merkmale dieser Namen anzeigt.

  1. In Tabelle1:

    • Spalte A: Namen
    • Spalte B: Merkmal 1
    • Spalte C: Merkmal 2
  2. Code: Verwende den oben genannten Code zur Füllung der TextBoxes.


Tipps für Profis

  • Datenvalidierung: Achte darauf, dass die Daten in der ListBox konsistent sind. Du kannst Datenvalidierung verwenden, um sicherzustellen, dass nur gültige Einträge ausgewählt werden.
  • Dynamische Aktualisierung: Verwende ComboBoxen zur Filterung der ListBox, um die Benutzererfahrung zu verbessern und die Auswahl relevanter zu gestalten.

FAQ: Häufige Fragen

1. Frage Wie kann ich die TextBox mit einem anderen Arbeitsblatt verknüpfen?

Antwort: Ändere den Verweis im Code von ActiveSheet zu Sheets("DeinBlattname"), um auf ein spezifisches Arbeitsblatt zuzugreifen.

2. Frage Kann ich die ListBox auch mit Daten aus einer externen Quelle füllen?

Antwort: Ja, du kannst Daten aus einer externen Quelle importieren, indem du den VBA-Code entsprechend anpasst und die Daten in die ListBox mit AddItem einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige