Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Vlookup und Listobject in Userform

Vlookup und Listobject in Userform
14.07.2015 20:30:57
P-Quest
Hallo,
ich wähle in einem Userform per Combobox (cbID) einen Wert aus.
Nun würde ich gerne in einer Textbox den dazugehörigen Namen anzeigen lassen.
Die Daten liegen im Worksheet Stammdaten und dort wiederrum in einem Listobject mit der Bezeichnung Stammdaten. Die Spalte für die Namen ist Spalte 2 und es sollen nur genaue Übereinstimmungen gefunden werden.
Was nicht funktioniert ist das:
Private Sub cbID_AfterUpdate()
txtName.Value = WorksheetFunction.VLookup(cbID.Value, Worksheets("Stammdaten").ListObject(" _
Stammdaten"), 2, False)
End Sub
Wo mache ich den Fehler?
Gruß,
Peter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Vlookup und Listobject in Userform
14.07.2015 21:08:29
Luschi
Hallo Peter,
bei klappt das so:

Me.txtName.Value = WorksheetFunction.VLookup(3, Worksheets("Stammdaten"). _
ListObjects("Stammdaten").DataBodyRange,
2, False)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Vlookup und Listobject in Userform
14.07.2015 21:17:22
P-Quest
Bei mir auch :-)
Danke!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Vlookup und Listobject in Userform


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Projekt und gehe zu deinem Userform.

  2. Füge eine ComboBox (z.B. cbID) und eine TextBox (z.B. txtName) hinzu.

  3. Stelle sicher, dass deine Daten in einem ListObject im Worksheet "Stammdaten" gespeichert sind.

  4. Nutze den folgenden VBA-Code im Userform, um den VLOOKUP korrekt zu implementieren:

    Private Sub cbID_AfterUpdate()
       txtName.Value = WorksheetFunction.VLookup(cbID.Value, Worksheets("Stammdaten").ListObjects("Stammdaten").DataBodyRange, 2, False)
    End Sub
  5. Teste das Userform, indem Du einen Wert in der ComboBox auswählst. Der entsprechende Name sollte in der TextBox angezeigt werden.


Häufige Fehler und Lösungen

  • Fehler: "Der Anwendungsfehler ist aufgetreten"

    • Lösung: Stelle sicher, dass der Wert, den Du in der ComboBox auswählst, tatsächlich in der ersten Spalte des ListObjects vorhanden ist.
  • Fehler: Leere TextBox

    • Lösung: Überprüfe, ob Du die Daten im richtigen Format hast und ob die ComboBox richtig mit den Werten gefüllt ist.
  • Fehler: Ungültige Referenz auf ListObject

    • Lösung: Vergewissere Dich, dass das ListObject tatsächlich "Stammdaten" heißt und dass Du es korrekt referenzierst.

Alternative Methoden

Wenn Du nicht mit VLookup arbeiten möchtest, kannst Du die DLookup-Funktion in VBA verwenden. Hier ist ein Beispiel, wie Du das umsetzen kannst:

Private Sub cbID_AfterUpdate()
    txtName.Value = DLookup("Name", "Stammdaten", "ID = " & cbID.Value)
End Sub

In diesem Beispiel wird die Funktion DLookup verwendet, um den Namen direkt aus der Tabelle basierend auf der ID abzurufen.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast eine Liste von IDs in der ersten Spalte und die zugehörigen Namen in der zweiten Spalte. Wenn Du die ID 3 auswählst, sollte txtName den entsprechenden Namen anzeigen.

  • Beispiel 2: Wenn Du eine Dropdown-Liste für die ComboBox erstellst, stelle sicher, dass die IDs der ersten Spalte des ListObjects entsprechen, damit die VLookup-Funktion korrekt ausgeführt werden kann.


Tipps für Profis

  • Nutze die ListObjects-Funktionalität in Excel, um Deine Daten besser zu organisieren und zu verwalten.
  • Vermeide VLookup in großen Datenmengen, da es langsamer sein kann. Überlege stattdessen, die Dictionary-Objekte in VBA zu verwenden, um eine schnellere Suche zu ermöglichen.
  • Teste Deinen Code regelmäßig nach jeder Anpassung, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine ComboBox die richtigen Werte anzeigt?
Stelle sicher, dass Du die ComboBox mit Werten aus dem ListObject füllst, indem Du den entsprechenden Code im Userform verwendest.

2. Was kann ich tun, wenn ich mehrere Spalten abgleichen möchte?
Wenn Du mehrere Spalten abgleichen möchtest, kannst Du die INDEX und MATCH-Funktionen in Kombination verwenden oder mehrere VLookup-Aufrufe in Deinem Code einfügen.

3. Ist DLookup schneller als VLookup?
In der Regel kann DLookup einfacher sein, aber die Leistung hängt stark von der Datenmenge und der Struktur Deiner Daten ab. Teste beide Methoden, um zu sehen, welche für Dich am besten funktioniert.

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