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

Forumthread: 2 Textboxen in Abhängigkeit einer Combobox füllen

2 Textboxen in Abhängigkeit einer Combobox füllen
05.02.2016 10:22:01
Marlen
Hallo ihr Lieben,
ich habe mal wieder ein VBA-Problem. Anbei die Beispieldatei.
https://www.herber.de/bbs/user/103299.xlsm
Beim Klick auf Programm starten, öffnet sich ein Userform. In diesem Userform soll der Mitarbeiter den Namen eines Mitarbeiters auswählen in der Combobox. Darauf hin sollen in TextBox2 die Personalnummer und in Textbox1 das Kurzzeichen ausgegeben werden.
Die Befüllung von der Combobox habe ich alphabetisch gemacht. Das wäre auch die praktikabelste Lösung. Mein Versuch über den Listindex zu gehen, ist leider gescheitert, deshalb würde ich euch bitten, mir mit meinem Code zu helfen.
Vielen Dank
Marlen

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: 2 Textboxen in Abhängigkeit einer Combobox füllen
05.02.2016 10:51:04
hary
Moin
Private Sub ComboBox1_Change()
Dim a As Variant
a = Application.Match(ComboBox1, Worksheets("Stammdaten").Columns(1), 0)
If IsNumeric(a) Then
TextBox2 = Worksheets("Stammdaten").Cells(a, 2)
TextBox1 = Worksheets("Stammdaten").Cells(a, 3)
End If
End Sub

gruss hary

Anzeige
Super
05.02.2016 11:08:34
Marlen
Danke funktioniert klasse. :D
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textboxen in Abhängigkeit einer Combobox füllen


Schritt-für-Schritt-Anleitung

Um Textboxen in einem Userform abhängig von einer Combobox zu füllen, kannst du die folgenden Schritte befolgen:

  1. Userform erstellen: Öffne Excel und erstelle ein neues Userform. Füge eine Combobox (ComboBox1) und zwei Textboxen (TextBox1 und TextBox2) hinzu.

  2. Datenquelle vorbereiten: Stelle sicher, dass du eine Excel-Tabelle (z. B. "Stammdaten") hast, die die Daten enthält, die du in der Combobox und den Textboxen anzeigen möchtest. Die erste Spalte sollte die Namen der Mitarbeiter enthalten, während die zweite und dritte Spalte die Personalnummer und das Kurzzeichen enthalten.

  3. Combobox befüllen: Füge im Userform_Initialize-Ereignis den folgenden Code hinzu, um die Combobox zu befüllen:

    Private Sub UserForm_Initialize()
        Dim ws As Worksheet
        Set ws = Worksheets("Stammdaten")
        ComboBox1.List = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, 1).End(xlUp).Row).Value
    End Sub
  4. Textboxen füllen: Verwende den folgenden Code im ComboBox1_Change-Ereignis, um die Textboxen entsprechend der Auswahl in der Combobox zu füllen:

    Private Sub ComboBox1_Change()
        Dim a As Variant
        a = Application.Match(ComboBox1.Value, Worksheets("Stammdaten").Columns(1), 0)
        If IsNumeric(a) Then
            TextBox2.Value = Worksheets("Stammdaten").Cells(a, 2).Value
            TextBox1.Value = Worksheets("Stammdaten").Cells(a, 3).Value
        End If
    End Sub
  5. Userform testen: Starte das Userform und wähle einen Namen aus der Combobox aus. Die entsprechenden Werte sollten in den Textboxen angezeigt werden.


Häufige Fehler und Lösungen

  • Fehler: Die Combobox wird nicht befüllt.

    • Lösung: Überprüfe, ob die Datenquelle korrekt ist und ob der Range in UserForm_Initialize richtig definiert ist.
  • Fehler: Textboxen bleiben leer, obwohl ein Wert in der Combobox gewählt wurde.

    • Lösung: Stelle sicher, dass der Match-Befehl die richtige Zeile findet. Überprüfe die Werte in der ersten Spalte der "Stammdaten".

Alternative Methoden

Eine alternative Methode, um Textboxen zu füllen, ist die Verwendung von VLOOKUP oder XLOOKUP, wenn du Excel 365 verwendest. Hier ist ein Beispiel mit VLOOKUP:

Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <> -1 Then
        TextBox2.Value = Application.VLookup(ComboBox1.Value, Worksheets("Stammdaten").Range("A:C"), 2, False)
        TextBox1.Value = Application.VLookup(ComboBox1.Value, Worksheets("Stammdaten").Range("A:C"), 3, False)
    End If
End Sub

Praktische Beispiele

Angenommen, du hast in deiner "Stammdaten"-Tabelle folgende Daten:

Name Personalnummer Kurzzeichen
Max Mustermann 12345 MM
Erika Mustermann 67890 EM

Wenn du "Max Mustermann" in der Combobox auswählst, sollten die Textboxen wie folgt befüllt werden:

  • TextBox1: MM
  • TextBox2: 12345

Tipps für Profis

  • Datenvalidierung: Stelle sicher, dass die Daten in deiner Tabelle korrekt formatiert sind, um Fehler zu vermeiden.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu protokollieren und den Benutzer zu informieren.
  • Dynamische Daten: Überlege, ob du die Daten in der Combobox dynamisch aktualisieren möchtest, wenn sich die "Stammdaten" ändern.

FAQ: Häufige Fragen

1. Wie kann ich die Combobox alphabetisch sortieren? Du kannst die Daten in der "Stammdaten"-Tabelle alphabetisch sortieren, bevor du sie in die Combobox lädst.

2. Was kann ich tun, wenn die Combobox leer bleibt? Überprüfe die Datenquelle und stelle sicher, dass der Range korrekt definiert ist und die Daten vorhanden sind.

3. Funktioniert das auch in Excel 2016? Ja, die beschriebene Methode funktioniert in Excel 2016 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige