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

Forumthread: VBA - Intelligente Tabelle - Vlookup

VBA - Intelligente Tabelle - Vlookup
14.01.2023 00:44:36
Timonski
Hallo zusammen,..
Ich hab vor kurzem die "Intelligente Tabelle" für mich entdeckt... ABER...
jetzt hätte ich gern ein VBA Befehl mit Vlookup.... aber ich könnte mir vorstellen, dass es schöner / einfache sein könnte... also wie bei einer "normalen Tabelle"...
Normale Tabelle:

Sub NormaleTabelle()
Cells(5, 6) = Application.WorksheetFunction.VLookup(Cells(4, 6), Range("A2:C7"), 2, False)
End Sub
sowas könnte ich mir bei einer "intelligenten Tabelle" vorstellen... aber geht das überhaupt...

Sub IntelligenteTabelle()
Cells(5, 6) = Application.WorksheetFunction.VLookup(Cells(4, 6), TABNAME, SPALTENNAME, False)
End Sub
aber ich hab im ganzen Netz nichts gefunden :-(
und wenn es jemand weiß... das ist es dieses Forum :-)
Gruß
Timonski
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Intelligente Tabelle - Vlookup
14.01.2023 01:19:52
onur
Alles andere wäre noch komplizierter:
WorksheetFunction.VLookup(Cells(4, 6), Range("TABNAME"), 2, False)
AW: VBA - Intelligente Tabelle - Vlookup
14.01.2023 05:43:57
Luschi
Hallo Timonski,
das hier funktioniert auch: WorksheetFunction.VLookup(Cells(4, 6), [TABNAME], 2, False)
Gruß von Luschi
aus klein-Paris
AW: VBA - Intelligente Tabelle - Vlookup
14.01.2023 14:13:16
Timonski
Hallo
Herzlichen Dank für eure Antworten...
nur nochmal kurz zu der Spaltenzahl... könnte man die nicht über ein FINDEN / SUCHEN Funktion rausbekommen...
es geht darum, dass wenn ich die Spalten einmal tauschen will, dass die VBA Formeln immer noch funktionieren :-)
Danke nochmals
und ein schönes Wochenende
Timonski
Anzeige
AW: VBA - Intelligente Tabelle - Vlookup
14.01.2023 15:53:21
onur
Warst nicht DU es, der schrieb: "dass es schöner / einfache sein könnte... also wie bei einer "normalen Tabelle"." ?
AW: VBA - Intelligente Tabelle - Vlookup
15.01.2023 00:06:29
Yal
Hallo Timonski,
Du meinst vielleicht, die Rückgabespalte anhand der Spaltenüberschrift zu ermitteln?

Public Function meinVerweis (ZeilSchlüssel, TabName, SpaltSchlüssel)
With Range(TabName).Parent.ListObjects(TabName)
meinVerweis = WorksheetFunction.VLookup(ZeilSchlüssel, .DataBodyRange, .ListColumns(Spaltchlüssel).Index, False)
End With
End Function
(Ungetestet, weil am Handy editiert)
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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

VBA für intelligente Tabellen mit VLOOKUP


Schritt-für-Schritt-Anleitung

Um eine intelligente Tabelle in Excel mit VBA anzusprechen und den VLOOKUP-Befehl zu verwenden, folge diesen Schritten:

  1. Intelligente Tabelle erstellen: Zunächst musst du eine intelligente Tabelle in Excel erstellen. Wähle die gewünschten Daten aus und gehe zu Einfügen > Tabelle. Stelle sicher, dass die Option „Meine Tabelle hat Überschriften“ aktiviert ist.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle Einfügen > Modul.

  4. Code eingeben: Füge den folgenden VBA-Code ein, um den VLOOKUP-Befehl für die intelligente Tabelle zu verwenden:

    Sub IntelligenteTabelle()
       Cells(5, 6) = Application.WorksheetFunction.VLookup(Cells(4, 6), [TABNAME], 2, False)
    End Sub

    Ersetze TABNAME durch den Namen deiner intelligenten Tabelle.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um den VLOOKUP-Befehl auszuführen.


Häufige Fehler und Lösungen

  1. Fehler beim Tabellennamen: Stelle sicher, dass der Name der intelligenten Tabelle korrekt und in eckigen Klammern angegeben ist. Beispiel: [Tabelle1].

  2. VLOOKUP gibt #N/A zurück: Der gesuchte Wert ist möglicherweise nicht in der ersten Spalte der angegebenen Tabelle. Überprüfe die Daten und stelle sicher, dass der Wert vorhanden ist.

  3. Dynamische Dropdown-Listen: Wenn du eine dynamische Dropdown-Liste über ein anderes Tabellenblatt erstellen möchtest, nutze den Namen der intelligenten Tabelle in der Datenvalidierung.


Alternative Methoden

  • XLOOKUP verwenden: Wenn du Excel 365 oder Excel 2019 verwendest, kannst du die XLOOKUP-Funktion verwenden, die flexibler als VLOOKUP ist. Beispiel:

    Cells(5, 6) = Application.WorksheetFunction.XLookup(Cells(4, 6), [TABNAME[SpaltenName]], [TABNAME[ErgebnisSpalte]])
  • SVERWEIS auf anderes Tabellenblatt: Du kannst den SVERWEIS-Befehl verwenden, um Daten aus einer intelligenten Tabelle auf einem anderen Tabellenblatt dynamisch abzurufen.


Praktische Beispiele

  1. VLOOKUP mit Spaltennamen: Wenn du den VLOOKUP-Befehl mit einem Spaltennamen verwenden möchtest, kannst du folgendes Beispiel verwenden:

    Public Function MeinVerweis(ZeilSchlüssel, TabName, SpaltSchlüssel)
       With Range(TabName).Parent.ListObjects(TabName)
           MeinVerweis = WorksheetFunction.VLookup(ZeilSchlüssel, .DataBodyRange, .ListColumns(SpaltSchlüssel).Index, False)
       End With
    End Function
  2. Letzte Zeile ermitteln: Um die letzte Zeile einer intelligenten Tabelle zu ermitteln, kannst du den folgenden Code verwenden:

    Dim letzteZeile As Long
    letzteZeile = Range("TABNAME").ListObject.ListRows.Count

Tipps für Profis

  • Intelligente Tabellen entfernen: Wenn du eine intelligente Tabelle entfernen möchtest, klicke mit der rechten Maustaste auf die Tabelle und wähle Tabelle löschen. Die Daten bleiben dabei erhalten.

  • VBA optimieren: Achte darauf, deine VBA-Codes zu optimieren, indem du Variablen verwendest und den Code modular gestaltest.

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungsroutinen in deinen VBA-Code ein, um unerwartete Fehler elegant abzufangen.


FAQ: Häufige Fragen

1. Wie kann ich eine dynamische Dropdown-Liste in einer intelligenten Tabelle erstellen?
Nutze die Datenvalidierungsfunktion und wähle den Bereich der intelligenten Tabelle als Quelle für die Dropdown-Liste an.

2. Kann ich eine intelligente Tabelle auch löschen?
Ja, klicke mit der rechten Maustaste auf die Tabelle und wähle „Tabelle löschen“. Dabei bleiben die Daten in den Zellen erhalten.

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