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

Forumthread: vba Sverweis intelligente Tabelle

vba Sverweis intelligente Tabelle
01.03.2023 11:54:27
Timm
Hallo zusammen,
ich möchte per VBA in eine Zelle den Sverweis als Formel schreiben und dabei als Suchmatrix eine intelligente Tabelle verwenden.
Hierzu meine Syntax
Dim c as Integer, d as Integer
c= 10
d=6
[Tabelle1.cells(c,d)] = WorksheetFunction.VLookup([Tabelle1.cells(c,5)], Tabelle2.ListObjects("Intelligente_Tabelle"), 3, False)
Dabei erhalte ich folgende Fehlermeldung:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Wo liegt der Hase im Pfeffer?
Gruß
Timm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: vba Sverweis intelligente Tabelle
01.03.2023 12:25:27
Rudi
Hallo,
was sollen die []?
Tabelle1.cells(c,d) = WorksheetFunction.VLookup(Tabelle1.cells(c,5), Tabelle2.Listobjects("Intelligente_Tabelle").Range, 3, False)
Gruß
Rudi
AW: vba Sverweis intelligente Tabelle
01.03.2023 12:46:02
Timm
Hallo Rudi,
hatte die Syntax mit den eckigen Klammern bei Google gefunden.
Funktioniert nun perfekt.
Vielen Dank.
Gruß
Timm
Anzeige
AW: vba Sverweis intelligente Tabelle
01.03.2023 15:23:04
Daniel
Ist das wirklich "perfekt"?
du wolltest doch den SVerweis als Formel in der Zelle haben, hier bekommst du aber das Ergebnis als festen Wert und nicht die Formel.
zu den eckigen Klammern: diese Klammern sind in VBA das Wurmloch zur Excel-Formel-Welt. Dh innerhalb dieser Klammern musst du die englische Schreibweise für Excelformeln anwenden, das Ergebis dieser Formel wird dann an VBA zurückgegeben.
dh mit den Klammern müsstest du schreiben:
[Tabelle1!F10] = ....
du erkennst auch gleich den Nachteil dieser Schreibweise, man muss A1-Adressen anwenden und es ist nicht möglich, Variablen einzubinden.
Gruß Daniel
Anzeige
AW: vba Sverweis intelligente Tabelle
01.03.2023 14:56:10
snb
In VBA verwendet man VBA kein Excel
Sub M_snb()
   sn=Tabelle2.listobjects(1).databodyrange
   c00= tabelle1.cells(10,5) 
   for j =1 1 to ubound(sn)
      if sn(j,1)=c00 then exit  for
   next
   if j =Ubound(sn) then Tabelle1.cells(10,6)=sn(j,3)
End Sub

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 SVERWEIS mit Intelligenter Tabelle in Excel


Schritt-für-Schritt-Anleitung

Um den SVERWEIS in VBA mit einer intelligenten Tabelle zu verwenden, gehe wie folgt vor:

  1. Öffne Excel und öffne den VBA-Editor mit ALT + F11.

  2. Erstelle ein neues Modul über Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub SVerweisMitIntelligenterTabelle()
       Dim c As Integer, d As Integer
       c = 10
       d = 6
       Tabelle1.Cells(c, d) = WorksheetFunction.VLookup(Tabelle1.Cells(c, 5), Tabelle2.ListObjects("Intelligente_Tabelle").Range, 3, False)
    End Sub
  4. Stelle sicher, dass die intelligente Tabelle in Tabelle2 benannt ist und die gesuchten Daten in der Spalte 3 vorhanden sind.

  5. Führe das Makro aus, um den SVERWEIS anzuwenden und den Wert in die gewünschte Zelle zu schreiben.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht."
    Überprüfe, ob du die richtige Syntax verwendest und die intelligente Tabelle korrekt benannt ist. Stelle sicher, dass du die Klammern wie im Beispiel oben verwendest.

  • Ergebnis ist ein fester Wert anstelle einer Formel:
    Wenn du den SVERWEIS als Formel in der Zelle haben möchtest, musst du den Code anpassen. Nutze dazu:

    Tabelle1.Cells(c, d).Formula = "=SVERWEIS(Tabelle1!E10;Tabelle2!Intelligente_Tabelle;3;FALSCH)"

Alternative Methoden

Eine Alternative zum SVERWEIS ist die Verwendung des XVERWEIS in Excel, das flexibler ist und auch mit dynamischen Bereichen arbeitet. In VBA könntest du den XVERWEIS wie folgt implementieren:

Tabelle1.Cells(c, d).Formula = "=XVERWEIS(Tabelle1!E10;Tabelle2!Intelligente_Tabelle[Suchspalte];Tabelle2!Intelligente_Tabelle[Ergebnis];""Nicht gefunden"")"

Mit diesem Ansatz kannst du den SVERWEIS dynamisch auf andere Tabellenblätter anwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, den SVERWEIS in VBA richtig anzuwenden:

  1. SVERWEIS auf anderes Tabellenblatt dynamisch:

    Tabelle1.Cells(c, d) = WorksheetFunction.VLookup(Tabelle1.Cells(c, 5), Tabelle2.Range("A:C"), 3, False)
  2. Wert aus einer anderen Tabelle übernehmen: Du kannst den SVERWEIS auch verwenden, um Werte aus einer anderen Tabelle zu übernehmen:

    Dim wert As Variant
    wert = Application.VLookup(Tabelle1.Cells(c, 5), Tabelle2.ListObjects("Intelligente_Tabelle").DataBodyRange, 3, False)
    If Not IsError(wert) Then
       Tabelle1.Cells(c, d) = wert
    End If

Tipps für Profis

  • Verwende immer die Option Explicit Anweisung zu Beginn deiner Module, um sicherzustellen, dass alle Variablen deklariert sind.
  • Nutze Dim sinnvoll, um die Lesbarkeit deines Codes zu verbessern. Beispielsweise kannst du auch Long anstelle von Integer verwenden, um größere Werte zu unterstützen.
  • Teste deinen Code regelmäßig, um sicherzustellen, dass er wie erwartet funktioniert.

FAQ: Häufige Fragen

1. Kann ich den SVERWEIS auch mit Google Sheets nutzen?
Ja, in Google Sheets kannst du ähnliche Funktionen (z.B. SVERWEIS) verwenden, jedoch mit einer anderen Syntax.

2. Was sind die Vorteile einer intelligenten Tabelle?
Intelligente Tabellen bieten dynamische Bereiche, die sich automatisch anpassen, wenn du Daten hinzufügst oder entfernst. Dies macht die Verwendung von SVERWEIS in Excel effizienter.

3. Wie kann ich Fehler beim SVERWEIS vermeiden?
Vergewissere dich, dass die Suchkriterien korrekt sind und die Daten in der intelligenten Tabelle richtig formatiert sind, um Fehler wie "Nicht gefunden" zu vermeiden.

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