Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellschutz





Frage

Hallo Und wieder ein neues Problem! Ich habe ein Makro aufgezeichnet, mit dem ein bestimmter Zellbereich markiert und dann kopiert wird. Problem: Wenn ich das Blatt schütze bekomme ich eine Fehlermeldung. Ich möchte erreichen: Das die Zellen, in den ich Formeln eingesetzt habe, vor unbeabsichtigten Änderungen geschützt sind. z.b. Range("A6:C35").Select & H6:H36 & F37 Ist es möglich und wenn wie? Mit freundlichen Grüßen yxc

Antwort 1 von peko

Hallo yxc,

stelle an den Beginn deines Makros folgende zwei Befehle:

Application.EnableEvents = False
(um Eingriffe während des Makro-Ablaufs zu verhindern)

ActiveSheet.Unprotect
(um den Blattschutz aufzuheben)

Ans Ende des Makros gehören dann:

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

und

Application.EnableEvents = True

Schönen Gruß!
peko

Antwort 2 von yxc

Hallo
Und Danke!
Es ergibt sich ein Problem.
Beim Ablauf des Makro wird eine Funktion unterdrückt.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 1 Then Range("A65535").End(xlUp).Offset(1, 0).Selec


Diese wird aber benötigt.
Kann mann nur den Blatschutz aufheben und dan wieder einschalten.

MFG

yxc

Antwort 3 von peko

Hallo yxc,

weil deine Funktion sich auf ein Event (SelectionChange) bezieht, kann sie natürlich nach

Application.EnableEvents=False

nicht mehr ausgeführt werden.

Wenn die SelectionChange-Überprüfung auch während des Makro-Ablaufs funktionieren muss, bleibt wohl nur die Möglichkeit, in deinem Makro auf die EnableEvents-Applikationen zu verzichten und dich auf das Aufheben und Einschalten des Blattschutzes am Anfang bzw. Ende des Makros zu beschränken.

Die "Sicherheitslücke", die dadurch entsteht, ist bei einem Makro, das nur wenig Zeit benötigt, eigentlich sehr klein.

Gruß peko

Antwort 4 von yxc

Hallo

Was müsste ich den genau schreiben, am Anfang und am Ende des Makros?

Es funktioniert wenn ich am Anfang.
ActiveSheet.Unprotect
Dann mein Makro.
Und am Ende.
ActiveSheet.Protect
Schreibe.
Ist das so richtig, brauche es beruflich darum diese Nachfrage!


MFG
yxc

Antwort 5 von peko

Hallo yxc,

du machst es genau richtig.

Gruß peko

Antwort 6 von yxc

HALLO peko


Nochmals besten Dank :-)

Bis zum nächsten Problem :-(


Mit freundlichen Grüßen.


YXC

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Suche in allen vorhandenen Beiträgen: