Makro soll WENN-Formel als String in Zelle einfügen

Hallo zusammen!

Da eins meiner Makros Zellen einfügt und eine WENN-Formel sich dadurch immer automatisch mitanpasst (was sie aber nicht soll), dachte ich mir, ich erneure die Formel einfach nach jedem Ausführen das anderen Makros.

Ich will also in Zelle M2 die Formel
=WENN((SUMME(G5:G1000)-SUMME(D6:D1011))-L3<0,01;„ok“;„Prüfen!“)
per Makro einfügen lassen.

Darum habe ich im VBA geschrieben:
Range(„M2“).Value = „=WENN((SUMME(G5:G1000)-SUMME(D6:D1011))-L3<0,01;„ok“;„Prüfen!“))“

Ganz so einfach geht das aber anscheinend doch nicht, da ich einen Syntaxfehler bekomme. Ich hab auch schon diverse Varianten versucht, komme aber nicht auf die Lösung. Kann mir jemand helfen?

Danke und viele Grüße!
Juli

Hallo,

um eine Formel (in Deutsch) per VBA in eine Zelle einzufügen, musst Du die Eigenschaft FormulaLocal statt der Eigenschaft Value verwenden. Ausserdem enthält die Formel ein „, das auch gleichzeitig das Trennzeichen für Strings in VBA ist. Das musst Du maskieren, indem Du mehrfach hintereinander das " schreibst, z.B. „““". Das ist etwas unübersichtlich, weshalb ich persönlich das Zusammenbauen per ASCII-Zeichencode mit der Funktion Chr(34) bevorzuge. In der VBA-Formel-Zuweisung oben ist zudem eine ) zuviel. Versuche es mal wie folgt:

Range("M2").FormulaLocal = "=WENN((SUMME(G5:G1000)-SUMME(D6:D1011))-L3<0,01;" & Chr(34) & "ok" & Chr(34) & ";" & Chr(34) & "Prüfen!" & Chr(34) & ")"

Gruß

Super, danke dir! So klappts!

Vielleicht sollte ich mich doch noch mal mehr mit den Grundlagen beschäftigen, als einfach drauf loszuschreiben…

Grüße!
Juli