VBA aufgezeichnete If-Formel geht nicht
08.01.2016 11:22:06
Denise
ich fange gerade an, mich mit dem Makro erstellen auseinander zu setzen, bin also ein totaler VBA Neuling (verstehen geht einigermaßen, selbst machen nur mit Hilfe des Rekorders). Außerdem ist das mein erster eigener Post in einem Forum, ich hoffe also es ist alles gut verständlich für euch.
Ich habe das Problem, dass ich eine Formel, die normal in Excel einwandfrei arbeitet, in einem Makro benötigt. Ich habe sie also aufgezeichnet. Nur leider weigert sich mein Makro diese auch auszuführen.
So sieht die Formel aus, wenn ich sie einfach in die Excel Zelle schreibe:
=WENN(Steuerungsseite!$C$4=1;U3*12;WENN(Steuerungsseite!$C$4=2;U3+((12-Steuerungsseite!$C$4)*J3); WENN(Steuerungsseite!$C$4=3;U3+((12-Steuerungsseite!$C$4)*K3);WENN(Steuerungsseite!$C$4=4; U3+((12-Steuerungsseite!$C$4)*L3);WENN(Steuerungsseite!$C$4=5;U3+((12-Steuerungsseite!$C$4)*M3); WENN(Steuerungsseite!$C$4=6;U3+((12-Steuerungsseite!$C$4)*N3);WENN(Steuerungsseite!$C$4=7; U3+((12-Steuerungsseite!$C$4)*O3);WENN(Steuerungsseite!$C$4=8;U3+((12-Steuerungsseite!$C$4)*P3); WENN(Steuerungsseite!$C$4=9;U3+((12-Steuerungsseite!$C$4)*Q3);WENN(Steuerungsseite!$C$4=10; U3+((12-Steuerungsseite!$C$4)*R3);WENN(Steuerungsseite!$C$4=11;U3+((12-Steuerungsseite!$C$4)*S3); WENN(Steuerungsseite!$C$4=12;U3))))))))))))
Geht bestimmt noch eleganter, aber funktioniert wie sie soll. Leider benötige ich sie in einem Tabellenblatt, dass erst durch das Makro generiert wird.
Mit dem Makrorekorder aufgezeichnet, sieht das ganze dann so aus:
Range("V2").Select
ActiveCell.FormulaR1C1 = _
"=IF(Steuerungsseite!R4C3=1,RC[-1]*12,IF(Steuerungsseite!R4C3=2,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-12]),IF(Steuerungsseite!R4C3=3,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-11]),IF(Steuerungsseite!R4C3=4,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-10]),IF(Steuerungsseite!R4C3=5,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-9]),IF(Steuerungsseite!R4C3=6,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-8]),IF(Steuerungsseite!R4C3=7,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-7]),IF(Steuerungsseite!R4C3=8,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-6]),IF(Steuerungsseite!R4C3=9,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-5]),IF(Steuerungsseite!R4C3=10,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-4]),IF(Steuerungsseite!R4C3=11,RC[-1]+((12-Steuerungsseite!R4C3)*RC[-3]),IF(Steuerungsseite!R4C3=12;RC[-1]))))))))))))"
Die vom Rekorder eingebauten Zeilenumbrüche habe ich schon raus genommen und die jeweils 8 dadurch verschwunden Zeichen wieder eingefügt. Aber scheinbar ist irgendwo noch was falsch und ich finde es einfach nicht.
Es kommt immer diese Fehlermeldung: Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler
Ich würde mich sehr freuen, wenn mir jemand helfen könnte.
Grüße
Denise