Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1052to1056
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro-Fehlermeldung (Laufzeitfehler '1004')

Makro-Fehlermeldung (Laufzeitfehler '1004')
01.03.2009 23:45:37
Patrick
Guten Abend
Ich arbeite derzeit an einem Excel-Sheet und benötige dafür einige Makros. Obwohl ich keine Ahnung von Makros habe, konnte ich über die Such-Funktionen in verschiedenen Foren meine Probleme bisher selbst lösen. Nun stosse ich jedoch an meine Grenzen und konnte auch im Internet keine Lösung für mein Problem finden. Und zwar stockt es bei folgendem Makro:
For i = 1 To 100
If Sheets("Tabelle").Cells(i, 28).Value = "" Then Exit For
Next i
Sheets("Tabelle").Range("AB" & i - 1).Select
Selection.Copy
Sheets("Auswertung").Select
Range("D75").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = xlCopy
For i = 1 To 100
If Sheets("Tabelle").Cells(i, 29).Value = "" Then Exit For
Next i
Sheets("Tabelle").Select
<b> Sheets("Tabelle").Range("AC" & i - 1).Select</b>
Selection.Copy
Sheets("Auswertung").Select
Range("E75").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = xlCopy
For i = 1 To 100
If Sheets("Tabelle").Cells(i, 30).Value = "" Then Exit For
Next i
Sheets("Tabelle").Select
Sheets("Tabelle").Range("AD" & i - 1).Select
Selection.Copy
Sheets("Auswertung").Select
Range("F75").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = xlCopy
For i = 1 To 100
If Sheets("Tabelle").Cells(i, 31).Value = "" Then Exit For
Next i
Sheets("Tabelle").Select
Sheets("Tabelle").Range("AE" & i - 1).Select
Selection.Copy
Sheets("Auswertung").Select
Range("H75").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = xlCopy
Während das Kopieren der ersten Zelle nach D75 einwandfrei funktioniert, bekomme ich bei der zweiten Zelle eine Fehlermeldung (Laufzeitfehler '1004' - Anwendungs- und objektdefinierter Fehler). Dabei wird die im obigen Makro fett markierte Zeile gelb markiert. Ich kann mir aus dieser Fehlermeldung keinen Reim machen, da ich den funktionierenden ersten Teil des Makros einfach kopiert und umgeschrieben habe. Euch Profis werden vermutlich die Haare zu Berge stehen, wenn ihr Euch dieses Makro anschaut. :-) Trotzdem wäre ich Euch sehr dankbar, wenn Ihr mir bei meinem Problem helfen könntet. Ich bin mit meinem - wahrlich sehr beschränkten Latein - am Ende.
Bereits jetzt vielen Dank für Eure Hilfe.
Beste Grüsse und eine gute Nacht
Patrick

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro-Fehlermeldung (Laufzeitfehler '1004')
01.03.2009 23:58:24
Josef
Hallo Patrik,
der Code sollte OK sein, naja OK ist vielleicht übertrieben.
Er könnte auch so aussehen.
Sub nnn()
  Dim lngRow As Long
  
  With Sheets("Tabelle")
    lngRow = .Cells(100, 28).End(xlUp).Row
    If lngRow > 1 Then Sheets("Auswertung").Range("D75") = .Cells(lngRow, 28)
    lngRow = .Cells(100, 29).End(xlUp).Row
    If lngRow > 1 Then Sheets("Auswertung").Range("E75") = .Cells(lngRow, 29)
    lngRow = .Cells(100, 30).End(xlUp).Row
    If lngRow > 1 Then Sheets("Auswertung").Range("F75") = .Cells(lngRow, 30)
    lngRow = .Cells(100, 31).End(xlUp).Row
    If lngRow > 1 Then Sheets("Auswertung").Range("H75") = .Cells(lngRow, 31)
  End With
End Sub

Zum Fehler: ich tippe mal auf verbundene Zellen.
Gruß Sepp

Anzeige
AW: Makro-Fehlermeldung (Laufzeitfehler '1004')
02.03.2009 00:22:19
Patrick
Hallo Sepp
Vielen herzlichen Dank für die extrem schnelle und kompetente Antwort! Ich wäre nie auf die Idee gekommen, dass meine Probleme mit einer verbundenen Zelle zusammenhängen könnten. Du hattest mit Deiner Ferndiagnose jedoch vollkommen recht. Ich hatte den Titel in Zeile 1 in eine verbundene Zelle geschrieben. Nach der Aufhebung der Zellenverbindung klappt mein "Makro" (diesen Namen verdient es ja kaum) einwandfrei. Es ist für mich unglaublich, wie schnell Du mir da die Lösung präsentiert hast. Ich habe mich mit diesem Problem seit 12.00 Uhr mittags herumgeschlagen. Da werden einem die eigenen Defizite mal wieder klar und deutlich aufgezeigt. :-)
Ich habe noch Deinen Vorschlag in mein Tool reinkopiert. Da kommt bei mir aber was Falsches raus. Kann das evtl. damit zusammenhängen, dass es bei meinen Werten auch den Wert "0" gibt resp. die "leeren" Zellen nicht wirklich leer sind, weil sie eine Wenn-Formel beinhalten?
Gruss
Patrick
Anzeige
AW: Makro-Fehlermeldung (Laufzeitfehler '1004')
02.03.2009 00:33:56
Josef
Hallo Patrik,
das geht auch ohne Schleife.
Sub nnn()
  Dim lngRow As Long
  
  With Sheets("Tabelle")
    lngRow = Evaluate("MAX(('" & .Name & "'!" & .Range(.Cells(1, 28), .Cells(100, 28)).Address & "<>"""")*ROW(1:100))")
    If lngRow > 1 Then Sheets("Auswertung").Range("D75") = .Cells(lngRow, 28)
    lngRow = Evaluate("MAX(('" & .Name & "'!" & .Range(.Cells(1, 29), .Cells(100, 29)).Address & "<>"""")*ROW(1:100))")
    If lngRow > 1 Then Sheets("Auswertung").Range("E75") = .Cells(lngRow, 29)
    lngRow = Evaluate("MAX(('" & .Name & "'!" & .Range(.Cells(1, 30), .Cells(100, 30)).Address & "<>"""")*ROW(1:100))")
    If lngRow > 1 Then Sheets("Auswertung").Range("F75") = .Cells(lngRow, 30)
    lngRow = Evaluate("MAX(('" & .Name & "'!" & .Range(.Cells(1, 31), .Cells(100, 31)).Address & "<>"""")*ROW(1:100))")
    If lngRow > 1 Then Sheets("Auswertung").Range("H75") = .Cells(lngRow, 31)
  End With
End Sub

Gruß Sepp

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige