HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Daniel
18.05.2026 10:15:06
AW: VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hi

Es gibt in Excel Aktionen, die dazu führen, dass der Zwischenspeicher geleert wird, dh Excel vergisst, was du kopiert hast.

Solche Aktionen dürfen dann nicht zwischen einem Copy und dem dazugehörigen Paste ausgefürt werden.

Das Aufheben des Blattschutz gehört vermutlich dazu.

Wenn du manuell den Blattschutz aufhebst, machst du das wahrscheinlich vor dem Kopieren.
Im Makro ist der Befehl "Unprotect" dann wirkungslos, weil der Blattschutz ja schon aufgehoben ist und der Zwischenspeicher bleibt erhalten.
Hebst du den Blattschutz nicht manuell auf, macht es das Makro und der Zwischenspeicher wird geleert.

Achte auf die richtige Reihenfolge:
1. Blattschutz im Zielblatt aufheben
2. Quellbereich kopieren
3. Im Zielblatt einfügen

Gruß Daniel

Als Antwort auf diesen Beitrag
sammy111
17.05.2026 19:23:24
VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hallo,

bisher hatte ich kein Problem, mit "ActiveSheet.Unprotect" im Code den Blattschutz auszuschalten und den Programmablauf ohne Fehlermeldung zu beenden. Bei dem unten stehenden Problem-Code wird zwar der Blattschutz der Zieldatei beendet, aber beim Einfügen eines zuvor kopierten Bereiches aus einer anderen Datei erhalte ich eine Fehlermeldung:
"Laufzeitfehler '1004': Die PasteSpezial-Methode des Range-Objektes konnte nicht ausgeführt werden."
Bei vorher manuell ausgeschaltetem Blattschutz läuft der Code ohne Problem durch und fügt den kopierten Bereich an der markierten Stelle ein. Beide Dateien sind bei der Aktion geöffnet.



Sub Tabelle_einfügen()
Dim targetCell As Range
ActiveSheet.Unprotect
Range("C2).select
Set targetCell = ActiveCell
Do Until ActiveCell.Value = ""
ActiveCell.Offset(17, 0).Select
Loop
ActiveCell.Offset(0, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub


Aufgabe der Aktion:
Aus verschiedenen Dateien wird nacheinander manuell ein Bereich kopiert und in die Zieldatei untereinander übertragen. Von der Zelle "C2" ausgehend wird durch Loop untersucht, welche 17. Zelle noch keinen Inhalt hat, u.s.w.

Mir ist nicht klar, warum bei vorher ausgeschaltetem Blattschutz der Vorgang ohne Problem abläuft und bei eingeschaltetem Blattschutz trotz "ActiveSheet.Unprotect" nicht.

Ich hoffe, ich habe das Problem einigermaßen verständlich beschrieben und jemand kann mir bei der Lösung helfen.

Viele Grüße
Sammy




Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.