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

Forumthread: WVERWEIS per VBA als Zellenfunktion

WVERWEIS per VBA als Zellenfunktion
26.01.2021 16:03:24
Stefan
Guten Tag
Ich möchte in einer grösseren Datei (100+ Tabellen) erweitern und dafür VBA bemühen.
Unter anderem soll per VBA ein WVERWEIS als Zellenfunktion definiert werden.
Beispiel:

Sub WVERWEIS()
Range("I3 ").Select ""
Selection.Formula = "=WVERWEIS(I2,A2:E3,2,""FALSCH"")"
End Sub

Die Zelle wird erwartungsgemäss beschrieben, gibt aber den Wert "#WERT!" zurück.
Nach anklicken der Formel und bestätigen per Enter im Tabellenblatt, funktioniert die Formel einwandfrei!
Kann mir da jemand weiterhelfen, wieso das nicht auf Anhieb funktioniert?
Ein File als Beispiel habe ich im Forum hinterlegt:
https://www.herber.de/bbs/user/143333.xlsm
Besten Dank und Grüsse
Stefan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WVERWEIS per VBA als Zellenfunktion
26.01.2021 16:10:43
peterk
Hallo

Selection.FormulaLocal = "=WVERWEIS(I2;A2:E3;2;""FALSCH"")"
oder
Selection.Formula = "=HLOOKUP(I2,A2:E3,2,""FALSCH"")"

AW: WVERWEIS per VBA als Zellenfunktion
26.01.2021 16:29:06
Daniel
Hi
zur Ergänzung zu dem was Peter geschrieben hat:
du hast in VBA vier verschiedene Möglichkeiten, eine Formel in eine Zelle zu schreiben:
a) international gültig (englisch) mit A1-Zellbezügen
b) international gültig (englisch) mit R1C1-Zellbezügen
c) lokal gültig (deutsch) mit A1-Zellbezügen
d) lokal gültig (deutsch) mit Z1S1-Zellbezügen
welche Variante man verwenden will, muss man im Code explizt angeben:
a) .Formula
b) .FormulaR1C1
c) .FormulaLocal
d) .FormulaR1C1Local
der nachfolgende Formeltext muss dann natürlich dieser Spezifikation entsprechen (Funkionsnamen, Parameter und Dezimaltrennzeichen, Zelladressen)
mit den Varianten a) und b) funktioniert der Code dann in jeder Ländervarsion, c) und d) funktionieren nur auf Rechnern mit der Länderversion, für die die Formel geschrieben wurde.
bei deiner deutschen Formel musst du dann Variante c), .FormulaLocal anstelle von .Formula verwenden.
Gruß Daniel
Anzeige
AW: WVERWEIS per VBA als Zellenfunktion
26.01.2021 17:06:53
Stefan
Wow, Wow, Wow!
Was für ein Service: Schnell und hilfreich.
Danke euch vielmals für die Hilfe und die Erklärung!
Habe die Formeln auf Englisch umgeschrieben und jetzt funktioniert es einwandfrei.
Grüsse
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

WVERWEIS per VBA als Zellenfunktion einrichten


Schritt-für-Schritt-Anleitung

Um den WVERWEIS in Excel mittels VBA als Zellenfunktion zu verwenden, gehe wie folgt vor:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel. Drücke ALT + F11.

  2. Erstelle ein neues Modul: Rechtsklick auf "VBAProject (deineDatei.xlsm)" > Einfügen > Modul.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Sub WVERWEIS()
        Range("I3").Select
        Selection.Formula = "=WVERWEIS(I2,A2:E3,2,FALSCH)"
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Formel in die Zelle I3 einzufügen.

Falls du die Formel in einer anderen Sprache verwenden möchtest, kannst du den Code entsprechend anpassen.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der bei der Verwendung von WVERWEIS in VBA auftreten kann, ist die Rückgabe von #WERT!. Dies kann mehrere Ursachen haben:

  • Falsche Formel-Syntax: Stelle sicher, dass du die richtige Syntax verwendest. Beispielsweise kann die Verwendung von Selection.FormulaLocal für deutsche Excel-Versionen notwendig sein:

    Selection.FormulaLocal = "=WVERWEIS(I2;A2:E3;2;""FALSCH"")"
  • Zellenformat: Überprüfe, ob die Zellen, auf die verwiesen wird, die richtigen Daten enthalten und ordnungsgemäß formatiert sind.

  • Regionale Einstellungen: Beachte, dass WVERWEIS als HLOOKUP in englischen Excel-Versionen bezeichnet wird.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, WVERWEIS in Excel zu verwenden:

  • HLOOKUP in VBA: Du kannst auch HLOOKUP in deinem VBA-Code verwenden:

    Selection.Formula = "=HLOOKUP(I2,A2:E3,2,FALSCH)"
  • Direkte Eingabe: Statt VBA kannst du die Formel auch direkt in die Zelle eingeben, wenn du die Daten nicht automatisieren musst.


Praktische Beispiele

Hier sind ein paar praktische Beispiele zur Verwendung von WVERWEIS und HLOOKUP in VBA:

  1. WVERWEIS mit englischer Syntax:

    Sub WVERWEIS_Englisch()
        Range("I3").Formula = "=VLOOKUP(I2,A2:E3,2,FALSE)"
    End Sub
  2. HLOOKUP als Alternative:

    Sub HLOOKUP_Example()
        Range("I3").Formula = "=HLOOKUP(I2,A2:E3,2,FALSE)"
    End Sub

Achte darauf, dass du die richtige Sprache entsprechend deiner Excel-Version verwendest.


Tipps für Profis

  • Verwendung von FormulaR1C1: Wenn du komplexere Formeln hast oder dynamische Zellbezüge benötigst, kann die Verwendung von .FormulaR1C1 hilfreich sein.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler abzufangen.

  • Testen in verschiedenen Excel-Versionen: Teste deinen VBA-Code in verschiedenen Excel-Versionen, um sicherzustellen, dass er überall funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der WVERWEIS funktioniert?
Stelle sicher, dass die Daten, auf die verwiesen wird, korrekt formatiert sind und die Formel-Syntax mit der Sprache deiner Excel-Version übereinstimmt.

2. Was ist der Unterschied zwischen WVERWEIS und HLOOKUP?
WVERWEIS ist die deutsche Bezeichnung für HLOOKUP, wobei beide Funktionen den gleichen Zweck erfüllen: Suchen von Werten in einer Tabelle. In englischen Excel-Versionen solltest du HLOOKUP verwenden.

3. Wie kann ich den WVERWEIS in einer anderen Sprache verwenden?
Wenn du eine andere Sprache verwenden möchtest, ändere die Formel entsprechend. Für die englische Version verwende VLOOKUP anstelle von WVERWEIS.

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