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

Laufzeitfehler 1004 Pastespecial

Laufzeitfehler 1004 Pastespecial
28.05.2021 22:45:07
Ilker
Hallo zusammen,
ich bekomme beim Ausführen von Pastespecial ein Laufzeitfehler. Wenn ich die aktivierte Zelle ändere, läuft das Makro durch. Beim zweiten mal aber wieder mit Fehler. Könnte jemand mal schauen und mir bitte helfen. Vielen Dank im Voraus.

Sub TransferDetailedEstimate()
Clave = "test"
If MsgBox("This command will owerwrite everything in this Sheet. Do you really want to transfer?", vbYesNo + vbQuestion) = vbYes Then
Application.ScreenUpdating = False
Sheets("Detailed Estimate").Select
Range("D4:D2000").Select
Selection.Copy
Sheets("Detailed Forecast").Select
ActiveSheet.Unprotect Clave
Range("D4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Detailed Estimate").Select
Range("L4:L2000").Select
Selection.Copy
Sheets("Detailed Forecast").Select
Range("E4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A4").Select
ActiveSheet.Protect Clave
Sheets("Detailed Estimate").Select
Range("A4").Select
ActiveSheet.Protect Clave
Application.ScreenUpdating = True
Sheets("Detailed Forecast").Select
Else
Exit Sub
End If
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:03:07
Daniel
Hi
Ist jetzt schwer zu sagen, dein Makro ist sehr unübersichtlich wegen der vielen Selects.
Die braucht man nicht, die sind nur dem Recorder und unserer Arbeitsweise als Mausschubser geschuldet.
Das ganze Kopieren und einfügen kann man in zwei Zeilen abbilden:
Aus:

Sheets("Detailed Estimate").Select
Range("D4:D2000").Select
Selection.Copy
Sheets("Detailed Forecast").Select
ActiveSheet.Unprotect Clave
Range("D4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Wird:

Sheets("Detailed Estimate").Range("D4:D2000").Copy
Sheets("Detailed Forecast").Range("D4").PasteSpecial Paste:=xlPasteValues
Das Ein- und Ausschalten des Blattdchutzes machst du genauso, am.Anfang bzw Ende des Vodes für die betroffenen Blätter mit einer Zeile:

Sheets("Detailed Forecast").Unprotect Clave
Schreib den Code erstmal vollständig nach diesem Schema um, dann wird übersivhlicher und man findet schneller den Fehler.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:34:30
Ilker
funktioniert super, danke.....
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:04:04
Werner
Hallo,
lass mal die ganzen Selects weg.
Zwischen Kopieren und PasteSpecial möglichst wenig "Zwischenschritte"

Sub TransferDetailedEstimate()
Dim clave As String
clave = "test"
If MsgBox("This command will owerwrite everything in this Sheet." _
& "Do you really want to transfer?", vbYesNo + vbQuestion) = vbYes Then
Application.ScreenUpdating = False
Sheets("Detailed Forecast").Unprotect clave
Sheets("Detailed Forecast").Unprotect clave
Sheets("Detailed Estimate").Range("D4:D2000").Copy
Sheets("Detailed Forecast").Range("D4").PasteSpecial Paste:=xlPasteValues
Sheets("Detailed Estimate").Range("L4:L2000").Copy
Sheets("Detailed Forecast").Range("E4").PasteSpecial Paste:=xlPasteValues
Sheets("Detailed Forecast").Protect clave
Sheets("Detailed Forecast").Protect clave
End If
Application.ScreenUpdating = False
End Sub
Gruß Werner
Anzeige
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:33:57
Ilker
Vielen Dank, funktioniert super....
Gerne u. Danke für die Rückmeldung. o.w.T.
29.05.2021 00:02:25
Werner
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:31:52
GerdL
Moin Ilker!

Sub TransferDetailedEstimate()
Dim Clave As String, E As Worksheet, F As Worksheet
If MsgBox("This command will owerwrite everything in this Sheet. Do you really want to transfer?", vbYesNo + vbQuestion) = vbNo Then Exit Sub
Clave = "test"
Set E = Worksheets("Detailed Estimate")
Set F = Worksheets("Detailed Forecast")
E.Unprotect Clave
F.Unprotect Clave
Application.ScreenUpdating = False
E.Range("D4:D2000").Copy
F.Range("D4").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
E.Range("L4:L2000").Copy
F.Range("E4").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
F.Protect Clave
E.Protect Clave
Application.ScreenUpdating = True
Set E = Nothing: Set F = Nothing
End Sub
Gruß Gerd
Anzeige
AW: Laufzeitfehler 1004 Pastespecial
28.05.2021 23:35:11
Ilker
Vielen Dank für die Antwort. Es hat mit den Vorschlägen vom Vorgänger funktioniert.
Crosspost
29.05.2021 15:09:34
Werner
Hallo,
wenn schon Crossposting, dann bitte die Beiträge in den verschiedenen Foren untereinander verlinken.
Zudem: Was hälst du denn davon im VBA-Forum mitzuteilen, dass dein Problem gelöst ist?
Oder ist es dir egal, dass dort u.U. weitere Helfer an deinem Problem arbeiten, somit für den Mülleimer arbeiten, weil sie von diesem Beitrag hier nichts wissen?
Gruß Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige