Hallo zusammen,
ich habe mir in VBA über Makro aufzeichnen eine Formel, welche ich manuell erstellt habe, kopiert, weil ich gerne das was ich manuell mache, per Makro tun möchte.
Das Makro ist relativ einfach, es tut einfach zu der Zelle P2 gehen und eine sehr lange Formel dort reinkopieren.
Wenn ich das Makro aber dann abspiele bekomme ich den Fehler 1004, finde aber nirgendwo genauere Informationen, was der Fehler ist.
Google hat mir hier leider auch nicht geholfen.
Könnte mir vorstellen, dass die Formel eventuell zu lang ist?
Aber warum geht Sie dann manuell in Excel?
Hier mal die Gegenüberstellung: VBA (aufgezeichnet) gegen manuelle Formel in Excel
=WENN(UND(N2="M";U2="WAHR");(LINKS(F2;R2)*1000000);WENN(UND(N2="B";U2="WAHR");(LINKS(F2;R2)*1000000000);WENN(N2="B";(LINKS(J2;R2)*1000000000);WENN(UND(N2="K";U2="WAHR");(LINKS(F2;R2)*1000);WENN(N2="K";(LINKS(F2;R2)*1000);WENN(N2="M";(LINKS(J2;R2)*1000000);WENN(N2="B";(LINKS(J2;R2)*1000000000);WENN(N2="%";(LINKS(J2;R2)*1);WENN(ISTFEHLER(H2);F2;WENN(ISTZAHL(H2);J2))))))))))
und hier der per Makro aufzeichnen erstellte Code.
Wenn ich eben diesen Code im Makro aufrufe, bekomme ich den 1004 Fehler, allerdings habe ich keine Ahnung wie ich das lösen kann. An dem Problem hänge ich schon 3 Tage ohne Lösung.
Range("P2").Select
Range("P2").FormulaLocal = _
"=IF(AND(RC[-2]=""M"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000000),IF(AND(RC[-2]=""B"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000000000),IF(RC[-2]=""B"",(LEFT(RC[-6],RC[2])*1000000000),IF(AND(RC[-2]=""K"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000),IF(RC[-2]=""K"",(LEFT(RC[-10],RC[2])*1000),IF(RC[-2]=""M"",(LEFT(RC[-6],RC[2])*1000000),IF(RC[-2]=""B"",(LEFT(RC[-6],RC[2" & _
"00000),IF(RC[-2]=""%"",(LEFT(RC[-6],RC[2])*1),IF(ISERROR(RC[-8]),RC[-10],IF(ISNUMBER(RC[-8]),RC[-6]))))))))))"
Range("P2").Select
Selection.AutoFill Destination:=Range("P223")
Range("P223").Select
Vielen Dank für eure Hilfe
ich habe mir in VBA über Makro aufzeichnen eine Formel, welche ich manuell erstellt habe, kopiert, weil ich gerne das was ich manuell mache, per Makro tun möchte.
Das Makro ist relativ einfach, es tut einfach zu der Zelle P2 gehen und eine sehr lange Formel dort reinkopieren.
Wenn ich das Makro aber dann abspiele bekomme ich den Fehler 1004, finde aber nirgendwo genauere Informationen, was der Fehler ist.
Google hat mir hier leider auch nicht geholfen.
Könnte mir vorstellen, dass die Formel eventuell zu lang ist?
Aber warum geht Sie dann manuell in Excel?
Hier mal die Gegenüberstellung: VBA (aufgezeichnet) gegen manuelle Formel in Excel
=WENN(UND(N2="M";U2="WAHR");(LINKS(F2;R2)*1000000);WENN(UND(N2="B";U2="WAHR");(LINKS(F2;R2)*1000000000);WENN(N2="B";(LINKS(J2;R2)*1000000000);WENN(UND(N2="K";U2="WAHR");(LINKS(F2;R2)*1000);WENN(N2="K";(LINKS(F2;R2)*1000);WENN(N2="M";(LINKS(J2;R2)*1000000);WENN(N2="B";(LINKS(J2;R2)*1000000000);WENN(N2="%";(LINKS(J2;R2)*1);WENN(ISTFEHLER(H2);F2;WENN(ISTZAHL(H2);J2))))))))))
und hier der per Makro aufzeichnen erstellte Code.
Wenn ich eben diesen Code im Makro aufrufe, bekomme ich den 1004 Fehler, allerdings habe ich keine Ahnung wie ich das lösen kann. An dem Problem hänge ich schon 3 Tage ohne Lösung.
Range("P2").Select
Range("P2").FormulaLocal = _
"=IF(AND(RC[-2]=""M"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000000),IF(AND(RC[-2]=""B"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000000000),IF(RC[-2]=""B"",(LEFT(RC[-6],RC[2])*1000000000),IF(AND(RC[-2]=""K"",RC[5]=""WAHR""),(LEFT(RC[-10],RC[2])*1000),IF(RC[-2]=""K"",(LEFT(RC[-10],RC[2])*1000),IF(RC[-2]=""M"",(LEFT(RC[-6],RC[2])*1000000),IF(RC[-2]=""B"",(LEFT(RC[-6],RC[2" & _
"00000),IF(RC[-2]=""%"",(LEFT(RC[-6],RC[2])*1),IF(ISERROR(RC[-8]),RC[-10],IF(ISNUMBER(RC[-8]),RC[-6]))))))))))"
Range("P2").Select
Selection.AutoFill Destination:=Range("P223")
Range("P223").Select
Vielen Dank für eure Hilfe