HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: VBA - Blattschutz lässt sich mit Code nicht ausschalten

Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
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




Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
BoskoBiati
17.05.2026 20:09:54
AW: VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hallo,

wo steht in dem Code das Passwort zum Ausschalten des Blattschutzes?

Gruß

Edgar
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Ulf
17.05.2026 21:34:54
AW: VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hi,
ich vermute das der kopierte Bereich oder der, in den eingefügt werden soll, verbundene Zellen hat.
hth
Ulf
Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Piet
17.05.2026 23:56:49
AW: VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hallo

dieser verkürzte Code sollte ausreichen. Wenn es kein verbundene Zellen Problem ist!

mfg Piet

Sub Tabelle_einfügen()

ActiveSheet.Unprotect
'LastZell in Spalte B suchen, mit Offset Paste ab Spalte A einfügen
Cells(Rows.Count, 2).End(xlUp).Offset(1, -1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
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

Forumbeitrag
Excel-Version des Fragestellers:
2019
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
sammy111
18.05.2026 17:14:14
AW: VBA - Blattschutz lässt sich mit Code nicht ausschalten
Hallo zusammen,
vielen Dank für die schnellen Antworten.

@ Edgar
Für den Blattschutz habe ich kein Passwort gesetzt.

@ Ulf
In beiden Dateien gibt es keine verbundenen Zellen.

@ Piet
Der verkürzte Code funktioniert grundsätzlich. In meiner Originaldatei beginnt der Tabellentext in Zelle "C2". Der nächste zu übertragende Text aus einer anderen Datei beginnt 2 Leerzeilen nach dem eingefügten Text in der Spalte "C" (17 Zeilen nach dem vorhergehenden Textbeginn) und nicht unmittelbar unter dem vorstehenden Text. Dafür ließe sich sicher eine Lösung finden, aber damit habe ich immer noch mein Problem mit dem Blattschutz nicht gelöst.

@ Daniel
Du hast sicher recht. Ich habe verschiedene Konstellationen im Code versucht, aber das Einfügen eines zuvor in einer anderen Datei kopierten Bereiches bei eingeschaltetem Blattschutz trotz vorgesetztem "ActiveSheet.Unprotect" im Code ist mir nicht gelungen. Nach dem Beenden der Fehlermeldung wird zwar das Arbeitsblatt der Zieldatei freigeschaltet, aber den um den Bereich laufende Kopierrahmen in der Herkunftsdatei gibt es dann nicht mehr. Der gesamte Vorgang kann dann allerdings ohne Probleme neu gestartet werden.

Ich habe nun für mich zur Umgehung einer Fehlermeldung am Codeanfang eine Nachricht eingerichtet, die mich daran erinnert, wenn ich das Ausschalten des Blattschutzes vergessen habe. Vielleicht hat noch jemand eine bessere Lösung. Interessiert daran bin ich schon.

Nochmals danke an euch.

Viele Grüße
Sammy