Microsoft Excel

Herbers Excel/VBA-Archiv

Aufgezeichnetes Makro bringt Fehler beim Ausführen

Betrifft: Aufgezeichnetes Makro bringt Fehler beim Ausführen von: Kasimir
Geschrieben am: 04.09.2014 15:23:32

Hall an Alle!

Ich habe mir folgendes mit dem Makrorecorder aufgezeichnet:

Sub Makro2()
'
' Makro2 Makro
'

'
    Range("Q2").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>"""",Hilfstabelle!R5C2>""""),IF(AND(RC[- _
3]=""ja"",RC[-2]=""ja"",RC[-1]=""ja""),""OK"",""NICHT OK""),IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>""""),IF(AND(RC[-3]=""ja"",RC[-2]=""ja""),""OK"",""NICHT OK""),IF(AND(Hilfstabelle!R4C2>0,Hilfstabelle!R5C2>""""),IF(AND(RC[-2]=""ja"",RC[-1]=""ja""),""OK"",""NICHT OK""),IF(AND" & _
        "belle!R3C2>0,Hilfstabelle!R4C2="""",Hilfstabelle!R5C8=""""),IF(AND(RC[-3]=""ja""),""OK" _
",""NICHT OK""),IF(AND(Hilfstabelle!R3C2=0,Hilfstabelle!R4C2>"""",Hilfstabelle!R5C2=""""),IF(AND(RC[-2]=""ja""),""OK"",""NICHT OK""),IF(AND(Hilfstabelle!R3C2=0,Hilfstabelle!R4C2="""",Hilfstabelle!R5C2>""""),IF(AND(RC[-1]=""ja""),""OK"",""NICHT OK"")))))))"
End Sub
Wenn ich nun aber das Makro starte erhalte ich einen Laufzeitfehler 1004, Anwendungs- oder objektdefinierter Fehler.

Meine Frage nun, warum erhalte ich diesen Fehler und was muss ich am Makro ändern, so dass die Formel durch das Makro in die Zelle geschrieben wird.

Danke Euch schon mal für die Hilfestellung,
Kasimir

  

Betrifft: AW: Aufgezeichnetes Makro bringt Fehler beim Ausführen von: Rudi Maintaire
Geschrieben am: 04.09.2014 15:34:21

Hallo,
da fehlt wohl was:

  "belle!R3C2>0,Hilfstabelle!R4C2="""",Hilfstabelle
Gruß
Rudi


  

Betrifft: AW: Aufgezeichnetes Makro bringt Fehler beim von: Kasimir
Geschrieben am: 04.09.2014 15:49:22

Hallo Rudi!

Danke Dir für die Antwort. Stimmt, da fehlt etwas. Aber auch wenn ich hier Hilfstabelle, was dort eigentlich stehen sollte, Eintrag gibt es diesen Fehler.
Ziel ist es in Zelle Q2 die Formel

=WENN(UND(Hilfstabelle!$B$3>0;Hilfstabelle!$B$4>"";Hilfstabelle!$B$5>"");WENN(UND(N2="ja";O2="ja"; P2="ja");"OK";"NICHT OK");WENN(UND(Hilfstabelle!$B$3>0;Hilfstabelle!$B$4>"");WENN(UND(N2="ja"; O2="ja");"OK";"NICHT OK");WENN(UND(Hilfstabelle!$B$4>0;Hilfstabelle!$B$5>"");WENN(UND(O2="ja"; P2="ja");"OK";"NICHT OK");WENN(UND(Hilfstabelle!$B$3>0;Hilfstabelle!$B$4="";Hilfstabelle!$H$5=""); WENN(UND(N2="ja");"OK";"NICHT OK");WENN(UND(Hilfstabelle!$B$3=0;Hilfstabelle!$B$4>""; Hilfstabelle!$B$5="");WENN(UND(O2="ja");"OK";"NICHT OK");WENN(UND(Hilfstabelle!$B$3=0; Hilfstabelle!$B$4="";Hilfstabelle!$B$5>"");WENN(UND(P2="ja");"OK";"NICHT OK"))))))) 
einzutragen.

Gruß,
Kasimir


  

Betrifft: AW: Aufgezeichnetes Makro bringt Fehler beim von: UweD
Geschrieben am: 04.09.2014 16:22:25

So ??

    ActiveCell.FormulaR1C1 = _
        "=IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>"""",Hilfstabelle!R5C2>"""")," & _
        "IF(AND(R[1]C[13]=""ja"",R[1]C[14]=""ja"", R[1]C[15]=""ja""),""OK"",""NICHT OK"")," & _
        "IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>"""")," & _
        "IF(AND(R[1]C[13]=""ja"", R[1]C[14]=""ja""),""OK"",""NICHT OK"")," & _
        "IF(AND(Hilfstabelle!R4C2>0,Hilfstabelle!R5C2>"""")," & _
        "IF(AND(R[1]C[14]=""ja"", R[1]C[15]=""ja""),""OK"",""NICHT OK"")," & _
        "IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2="""",Hilfstabelle!R5C8="""")," & _
        "IF(AND(R[1]C[13]=""ja""),""OK"",""NICHT OK"")," & _
        "IF(AND(Hilfstabelle!R3C2=0,Hilfstabelle!R4C2>"""", Hilfstabelle!R5C2="""")," & _
        "IF(AND(R[1]C[14]=""ja""),""OK"",""NICHT OK"")," & _
        "IF(AND(Hilfstabelle!R3C2=0, Hilfstabelle!R4C2="""",Hilfstabelle!R5C2>"""")," & _
        "IF(AND(R[1]C[15]=""ja""),""OK"",""NICHT OK"")))))))"
Gruß UweD


  

Betrifft: AW: Aufgezeichnetes Makro bringt Fehler beim Ausführen von: Daniel
Geschrieben am: 04.09.2014 16:26:39

Hi

durchaus möglich dass das zu lang ist für eine Excelzeile (ich meine der Grenzwert liegt bei c.a 500 Zeichen und da bist du drüber)
Excel zeichnet zwar auf, kann es dann aber nicht auführen.

wenn du dein Blatt "Hilfstabelle" in "H" umbenennst, kommst du mit der Formel unter 500 Zeichen und damit funktionierts.

das Umbennen kannst du auch per Code machen.
auch das Rückgängigmachen dieser Änderung funktioniert problemlos, Excel passt alle Formeln automatisch an:

Makro2 Makro
Sheets("Hilftabelle").Name = "H"
      Range("Q2").FormulaR1C1 = _
          "=IF(AND(H!R3C2>0,H!R4C2>"""",H!R5C2>""""),IF(AND(RC[- _
          .......""NICHT OK"")))))))"
  
Sheets("H").Name = "Hilfstabelle"
End Sub
die Andere Möglichkeit das Problem der zu langen Befehlszeile zu umgehen wäre folgendes:
Schreibe die Formel erst in eine Variable, dann kannst du sie in mehren Teilen zusammenfügen:
Sub Makro2()
Dim FO as string
FO = "=IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>"""",Hilfstabelle!R5C2>""""),IF(AND(RC[-"
FO = FO & "3]=""ja"",RC[-2]=""ja"",RC[-1]=""ja""),""OK"",""NICHT OK"")"
FO = FO & ",""NICHT OK""),IF(AND(Hilfstabelle!R3C2>0,Hilfstabelle!R4C2>"""")"
usw
Range("Q2").FormulaR1C1 = FO
End Sub

die zweite Methode hat den Nachteil, dass du sie nicht aufzeichnen kannst, sondern halt so dafür sorgen musst, dass beim zusammenstückeln eine richtige Formel ohne Schreibfehler entsteht.

aber auch bei der zweiten Methode muss du den Grenzwert von maximal 1000 Zeichen für die Formel beachen, mehr kann VBA nicht an Excel als Formel übergeben.
(von Hand eingetragen darf die Formel 8000 Zeichen lang sein)

Gruß Daniel


  

Betrifft: Aufgezeichnetes Makro bringt Fehler beim Ausführen von: kasimir.h@onlinehome.de
Geschrieben am: 04.09.2014 18:39:38

Hallo Ihr beiden!

Danke für die Hilfe. Die Lösung von Uwe hat super funktioniert und bringt mich weiter. Beide Lösungen von Daniel haben leider nicht funktioniert. Es trat der gleiche Fehler auf.

Danke nochmal und noch einen schönen Abend,
Kasimir


 

Beiträge aus den Excel-Beispielen zum Thema "Aufgezeichnetes Makro bringt Fehler beim Ausführen"