Anzeige
Archiv - Navigation
1384to1388
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 läuft nicht mit F5

Makro läuft nicht mit F5
06.10.2014 10:55:59
Thomas
Hallo,
ich habe folgendes Problem:
Makros in denen kopiert und eingefügt wird laufen nicht durch.
Die ersten Spalten werden noch kopiert, dann kommt der Fehler "Laufzeitfehler 1004".
Lasse ich das Makro Schrittweise mit F8 durchlaufen kommt kein Fehler.
Erstellt wurden die Makros mit Office 2010 und hier laufen sie auch problemlos durch.
Jetzt verwende ich "Office Home and Business 2013".
Hier ein Auszug aus einem Makro:
Sheets(1).Range(Cells(a, 61), Cells(b, 61)).Copy
Sheets("SIM_SW").Range("u2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets(1).Range(Cells(a, 11), Cells(b, 12)).Copy
Sheets("SIM_SW").Range("g2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Hat jemand eine Idee?
Schon mal vielen Dank.
Gruß
Thomas

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW:der übliche Standardfehler
06.10.2014 11:06:21
Daniel
Hi
Wenn du mit mehreren Blättern arbeitest, dann musst du das Blatt vor jedem Zellbezug (Cells, Columns, Rows, Range) angeben.
Das gilt auch für die Cells innerhalb der Range
Sheets(1).Range(Sheets(1).Cells(a, 61), Sheets(1).Cells(b, 61)).Copy
Da das zu langem und unübersichtlichen Code führt, solltest du Zellbereiche mit Hilfe der Resize-Funktion beschreiben
Sheets(1).Cells(a, 61).resize(b - a + 1, 1).copy
Gruß Daniel

AW: AW:der übliche Standardfehler
06.10.2014 12:06:36
Thomas
Hallo Daniel,
vielen Dank für die Info - gebracht hat's leider nichts, das Makro läuft nicht durch,
wie gesagt, es geht nur mit F8.
Vielleicht hast du ja noch eine Idee.
Gruß
Thomas

Anzeige
AW: AW:der übliche Standardfehler
06.10.2014 12:34:46
Martin
Hallo Thomas,
auch ich kann keinen Fehler feststellen. Daniel irrt sich in der Aussage, dass das Tabellenblatt zwingend vor Range beim Zellbezug stehen muss (...zumindest dann nicht, wenn bei bei Cells innerhalb der Range-Angabe der Tabellenblatt-Bezug angegeben ist).
Noch eine andere Möglichkeit zur Einsparung von Makrocode und Übersichtlichkeit besteht in der Verwendung von With:
    With Sheets(1)
Range(.Cells(a, 61), .Cells(b, 61)).Copy
End With
Bei mir werden die Zellen aus der Spalte "BI" aus dem ersten Tabellenblatt kopiert.
Viele Grüße
Martin

Anzeige
AW: AW:der übliche Standardfehler
06.10.2014 12:42:15
Daniel
Ich irre da nicht, ich beschreibe halt nur die Methode, die in jedem Fall funktioniert und nicht die nur teilweise funktioniert und bei der daher noch zusätzliche Erklärungen notwendig sind.
Gruß Daniel

...mach aus einer Mücke keinen Elefanten!
06.10.2014 12:53:16
Martin
Hey Daniel,
du hast geschrieben: "[...] dann musst du das Blatt vor jedem Zellbezug (Cells, Columns, Rows, Range) angeben." Das Wort "jedem" hast du sogar fett geschrieben.
Das stimmt so nicht. Meine Aussage ist also korrekt ;-)
Viele Grüße
Martin

AW: ...mach aus einer Mücke keinen Elefanten!
06.10.2014 13:03:14
Daniel
Damit deine Aussage korrekt ist, musst du immer dazu schreiben, dass sie nicht gilt, wenn der Code in einem Tabellenblattmodul steht.
In einem Tabellenblattmodul muss dass Tabellenblatt auch vor der Range stehen.
Gruß Daniel

Anzeige
Bist du ein Beamter? Ohje, was sagst du dazu...
06.10.2014 13:29:50
Martin
Die von mir ausgeführte Form des Zellbezugs funktioniert nur auf einem Computer mit installiertem Microsoft Excel in der Anwendung Microsoft Excel ab Version 5 mit aktivierten Makros in Makro-Modulen, Klassenmodulen und Formularen ;-)
Mist, VBA geht scheinbar auch in Online-Excel (http://support2.microsoft.com/kb/2028380/de)!
Jetzt ist mir ein Abgleich mit kompatiblen Browser-Versionen aber echt zu blöd ;-)

AW: Bist du ein Beamter? Ohje, was sagst du dazu...
06.10.2014 14:08:02
Daniel
bezieh dich einfach auf die Excelversion, die der Fragesteller angegeben hat.
Gruß Daniel

AW: AW:der übliche Standardfehler
06.10.2014 12:50:33
Daniel
Hi
Hast du das bei allen Range(cells, cells) beachtet?
Wenn du mit F8 durchtickerst, wechselt du dann manuell das Tabellenblatt um auf dem Richtigen Blatt zu sein?
Das Sheets(1).Range(Cells(), Cells()) funktioniert nämlich ohne Fehler, wenn zufällig das Sheet(1) aktiv ist. Erst wenn ein anderes Blatt aktiv ist, kommt der Fehler.
Deswegen fällt das oft nicht auf, wenn man im Einzelstep testet und nebenbei von Hand "mitblättert"
Ansonsten kann es auch sein, dass einfach die Datei nein Schuss hat. Dann hilft schliessen und neunöffnen.
Gruß Daniel

Anzeige
AW: AW:der übliche Standardfehler
06.10.2014 13:14:40
Thomas
Hallo,
nein, ich wechsle nicht von Hand das TB.
Es werden auf diese Weise 7 Spalten kopiert und an der 6. steigt das Programm aus.
Mit Schließen und danach neu öffnen geht's auch nicht besser.
Und mit Office 2010 hat es ja funktioniert.
Gruß
Thomas

AW: AW:der übliche Standardfehler
06.10.2014 13:19:27
Daniel
Hi
Wenn's mit fünfen geht und mit der sechsten nicht dann solltest du dir mal die sechste Spalten genauer anschauen und versuchen herauszufinden, was bei dieser Spalten anders ist als bei denen, wo es funktioniert.
Momentan kann ich dir dabei nicht helfen, weil ich deinen Datei nicht kenne.
Gruß Daniel

Anzeige
AW: AW:der übliche Standardfehler
06.10.2014 13:52:22
Thomas
Hallo,
an den Spalten habe ich nichts gefunden.
Aber ich habe die Reihenfolge geändert, die Problemstelle ans Ende geschoben und siehe da
das Makro lief durch - warum auch immer.
Vielen Dank für die Unterstützung.
Gruß
Thomas

AW: AW:der übliche Standardfehler
06.10.2014 13:33:26
Martin
Hallo Thomas,
du solltest in deinem Makro mit der Funktionstaste "F8" jede Codezeile einzeln durchgehen und verfolgen was passiert. Die Wahrscheinlich ist sehr hoch, dass du so das Problem findest.
Viele Grüße
Martin

AW: Makro läuft nicht mit F5
06.10.2014 15:59:05
Adis
Hallo Thomas
Ich bin Adis, und kenne die Schwierigkeiten bei Fehlersuche.
Mein Rat, kopiere die Datei und suche den Fehler in der Kopie. (Schutz vor Datenverlust!)
Schau mal bitte ob in dem Makro eine -On Error Anweisung- vorkommt und setze sie ausser Kraft.
Einfach ein ' vor On Error setzen, dann wird daraus ein Kommentar. Meine Methode so zu suchen!
Dann müsste beim Start das Makro mit Laufzeitfehler in der fehlerhaften Zeile stehen bleiben
und sie gelb markieren. Alle Makros sind jetzt blockiert und Excel muss im VBA Editor im Menü
Run durch Reset zurückgesetzt werden. So weiss man wenigstens -welche Zeile- ihn verursacht.
Wenn die Profis wissen in welcher Zeile der Fehler steckt können sie dir weiter hlefen!
Gruss Adis

Anzeige
AW: Makro läuft nicht mit F5
06.10.2014 23:52:00
Ewald
Hallo,
wenn im F8-Modus das Makro durchlaüft, rührt der Fehler im normalen Modus garantiert nicht von einer Bereichszuweisung her.
Hilfreich wäre natürlich die Zeile die angemeckert wird bei der Fehlermeldung und was vorher gemacht wurde.(die Zeilen davor)
Ursache könnte sein,der Pastebefehl ist noch nicht fertig(bei großen Bereichen) und es wird versucht den neuen Copybereich zu setzen.
Gruß Ewald

AW: Makro läuft nicht mit F5
07.10.2014 06:20:13
Thomas
Hallo zusammen,
vielen Dank für die Tipps.
Ewalds Vermutung ist auch meine, denn als ich den Bereich ans Ende des Makros gesetzt habe,
ist das Makro durchgelaufen. Ich habe schon bevor ich hier Hilfe gesucht habe, mit der
wait-Funktion Zeit zwischen den Kopiervorgängen zu schaffen. Das hat leider nicht funktioniert.
Gruß
Thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige