Microsoft Excel

Herbers Excel/VBA-Archiv

WVERWEIS per VBA als Zellenfunktion

Betrifft: WVERWEIS per VBA als Zellenfunktion von: Stefan
Geschrieben am: 26.01.2021 16:03:24

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

Betrifft: AW: WVERWEIS per VBA als Zellenfunktion
von: peterk
Geschrieben am: 26.01.2021 16:10:43

Hallo

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

Selection.Formula = "=HLOOKUP(I2,A2:E3,2,""FALSCH"")"



Betrifft: AW: WVERWEIS per VBA als Zellenfunktion
von: Daniel
Geschrieben am: 26.01.2021 16:29:06

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

Betrifft: AW: WVERWEIS per VBA als Zellenfunktion
von: Stefan
Geschrieben am: 26.01.2021 17:06:53

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

Beiträge aus dem Excel-Forum zum Thema "WVERWEIS per VBA als Zellenfunktion"