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
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
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
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
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
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
Nochmals besten Dank :-)
Bis zum nächsten Problem :-(
Mit freundlichen Grüßen.
YXC

