Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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

Makroabarbeitung verzögern

Makroabarbeitung verzögern
08.03.2015 11:40:54
René

Hallo zusammen,
in meinem Makro wird ein Bereich kopiert. Vorher wird der Blattschutz aufgehoben und am Ende wieder gesetzt. Beim Paste-Befehl bekomme ich eine Fehlermeldung.
Kommentiere ich die Protect-Anweisung aus, geht es. Die 10 Sekunden (auch 20) reichen anscheinend nicht.
Range(Cells(6, 1), Cells(37, 282)).Copy
Sheets("Auswertung gesamt").Select
ActiveSheet.Unprotect Password:="XXX"
Range("b5:b5").Value = ""
Range("b7:b7").Value = ""
Range("A50:a50").Value = Klasse
Range(Cells(51, 2), Cells(51, 283)).PasteSpecial (xlPasteValues)
Application.Wait (Now + TimeValue("00:00:10"))
ActiveSheet.Protect Password:="XXX"
Nun die Frage. Kann ich die Protect-Anweisung "warten lassen" bis der Paste-Befehl vollständig abgearbeitet ist?
Danke schonmal für eure Bemühungen.
Viele Grüße
René

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroabarbeitung verzögern
08.03.2015 12:00:21
Hajo_Zi
Hallo René,
folgendes Makro läuft bei mir Fehlerfrei.
Option Explicit
Sub Kopie()
Dim Klasse As String
Klasse = "Test"
Range(Cells(6, 1), Cells(37, 282)).Copy
With Sheets("Auswertung gesamt")
.Unprotect Password:="XXX"
.Range("b5").Value = ""
.Range("b7").Value = ""
.Range("A50").Value = Klasse
Range(Cells(6, 1), Cells(37, 282)).Copy
.Range(.Cells(51, 2), .Cells(51, 283)).PasteSpecial (xlPasteValues)
.Protect Password:="XXX"
End With
End Sub


AW: Makroabarbeitung verzögern
08.03.2015 12:54:51
René
Hallo Hajo,
Habe deinen Vorschlag getestet. Leider ist der Fehler immer noch da. Zudem holt sich Excel die Daten aus dem Blatt "Auswertung gesamt". Die Quelle ist aber ein Anderes, weshalb ich den Copy-Befehl aus vor Sheets("Auswertung gesamt").Select gesetzt habe. Deshalb ohne den 2. Copy-Befehl getestet.
Gruß René

Anzeige
AW: Makroabarbeitung verzögern
08.03.2015 12:57:56
Hajo_Zi
Hallo René,
in Deinen Code wurde der Bereich aus der aktuellen Tabelle kopiert daran habe ich nichts geändert.
Bei mir gehrt es. Deine Datei sehe ich nicht.

AW: Makroabarbeitung verzögern
08.03.2015 13:07:38
Daniel
Hi
du solltest dir angewöhnen, immer den Namen des Blattes, mit dem du arbeiten willst, vor die Zellbezüge zu setzten.
Dann ist es für die Ausführung egal welches Blatt gerade aktiv ist und du kannst das Selektieren weglassen.
der Code von Hajo ist so geschrieben, dass der Focus auf dem Blatt bleiben muss, von dem du die Daten kopierst (das geht nicht anders, weil du keinen Tabellenblattnamen für den kopierbereich genannt hast)
Das Problem ist, dass man den Copy-Befehl und das PasteSpecial so dicht wie möglich bei einander stehen haben sollte, weil es Aktionen gibt, bei denen Excel seinen Zwischenspeicher leert, und dann sind keine Daten mehr zum Einfügen vorhanden.
sowas passiert beispielsweise, wenn du den Blattschutz aufhebst. Deswegen muss das Aufheben des Blattschutzes in der Zieldatei erfolgen, bevor du die Quelldaten kopierst.
(wenn du jetzt immer das Blatt auf dem du arbeiten willst selektierst, gibts ne wilde hopserei)
daher entstand wahrscheinlich dein Eindruck, dass Excel noch nicht fertig mit dem Einfügen der Daten war, dabei war es schon lange fertig, weil du den Zwischenspeicher mit Aufheben des Blattschutzes gelöschst hattest und es deswegen nichts zum Einfügen gab.
die von dir erhoffte Verzögerung ist nicht erforderlich, da Excel den nächsten Schritt immer erst dann ausführt, wenn der vorherige abgeschlossen ist (Ausnahmen können bei Importen von externen Datenquellen wie dem Internet bestehen)
Gruß Daniel

Anzeige
AW: Makroabarbeitung verzögern
08.03.2015 14:04:47
René
Hallo,
danke für de Tipp. Das Excel den Speicher leert, war mir nicht bekannt. Ich werde mal testen, den Blattschutz früher aufzuheben.
Gruß René

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige