Makro-Code - Zellen formatieren in einer schreibgeschützten Datei

16/11/2007 - 13:04 von Gabi | Report spam
Hallo liebe Excel-Freunde,

ich möchte dem User in einer mit Passwort geschützten Datei erlauben, Zellen
zu markieren und dort die Schriftart zu àndern. Er soll das aber nicht mit
schreibgeschützten Zellen tun dürfen.

Leider klappt das noch nicht ganz mit dem nachfolgenden Code. Funktioniert
nur, wenn alle markierten Zellen gesperrt sind. Sobald eine Zelle ohne
Sperrung dabei ist, werden alle Zellen umformatiert

Sub Schrift_rot_()
Dim myPW As String
myPW = "xyz"
ActiveSheet.Unprotect Password:=myPW
If ActiveCell.Locked = True Then
Else
With Selection.Font
.FontStyle = "Fett"
.ColorIndex = 3
End With
End If
ActiveSheet.Protect Password:=myPW, DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub

Vielen Dank für Eure Hilfe!!
Gabi
 

Lesen sie die antworten

#1 Thomas Ramel
16/11/2007 - 13:27 | Warnen spam
Grüezi Gabi

"Gabi" schrieb:

ich möchte dem User in einer mit Passwort geschützten Datei erlauben, Zellen
zu markieren und dort die Schriftart zu àndern. Er soll das aber nicht mit
schreibgeschützten Zellen tun dürfen.

Leider klappt das noch nicht ganz mit dem nachfolgenden Code. Funktioniert
nur, wenn alle markierten Zellen gesperrt sind. Sobald eine Zelle ohne
Sperrung dabei ist, werden alle Zellen umformatiert

Sub Schrift_rot_()
Dim myPW As String
myPW = "xyz"
ActiveSheet.Unprotect Password:=myPW
If ActiveCell.Locked = True Then
Else
With Selection.Font
.FontStyle = "Fett"
.ColorIndex = 3
End With
End If
ActiveSheet.Protect Password:=myPW, DrawingObjects:=True,
Contents:=True, Scenarios:=True
End Sub



JA, denn Du prüfst ob die aktive Zelle geschützt ist, formatierst dann aber
die gesamte Markierueng.

Durchlaufe die markierten Zellen in einer Schleife und prüfe jede einzelne:

Sub Schrift_rot_()
Dim myPW As String
Dim rngZelle As Range

myPW = "xyz"

ActiveSheet.Unprotect Password:=myPW
For Each rngZelle In Selection

If rngZelle.Locked = True Then
Else
With rngZelle.Font
.FontStyle = "Fett"
.ColorIndex = 3
End With
End If
Next rngZelle

ActiveSheet.Protect _
Password:=myPW, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End Sub

Mit freundlichen Grüssen

Thomas Ramel (@Web-Interface)
- MVP für Microsoft-Excel -

[Win XP Pro SP-2 / xl2003]

Ähnliche fragen