Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte Zellen formatieren trotz Blattschutz

Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 09:57:39
Franz
Hallo miteinander,
ich möchte gerne in meinem gesperrten Excel Sheet 2 Zellen formatieren können. Dazu habe ich folgenden Code der leider nicht funktioniert. Hat jmd eine Idee woran es bei mir hakt?
Wenn ich "Zellen formatieren" für den gesamten Blattschutz freigebe können alle Zellen bearbeitet werden, deshalb habe ich es so probiert.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Die 2 Felder sollen formatierbar bleiben trotz Blattschutz
If SheetNamenstabelle.Range("Wert1").Locked = True Then
SheetNamenstabelle.Range("Wert1").Unprotect UserInterfaceOnly:=True, DrawingObjects:=True,  _
Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingRows:=True,  _
Password:=Passwort
Else
ActiveSheet.Protect Password:=Passwort
End If
If SheetNamenstabelle.Range("Suche1").Locked = True Then
SheetNamenstabelle.Range("Suche1").Unprotect UserInterfaceOnly:=True, DrawingObjects:=True,   _
_
Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingRows:=True,  _
Password:=Passwort
Else
ActiveSheet.Protect Password:=Passwort
End If
End Sub


Es wird direkt in die Else Bedingung gesprungen. Wenn ich den Wert von Locked auf False setzte, bekomme ich die Fehlermeldung 438. Objekt unterstützt diese Eigenschaft oder Methode nicht.
Danke schonmal

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 10:34:30
{Boris}
Hi,
Du kannst keine einzelnen Zellen mit der Unprotect-Methode entschützen, sondern immer nur das Blatt.
Warum fügst Du nicht einfach eine separate Auswahlzelle oder Optionbuttons etc. ein, um das Währungsformat bei Bedarf zu ändern? Sowohl die Buttons als auch die Auswahlzelle liefern die benötigten Ereignisse, um die Formatänderung via VBA vorzunehmen - und dazu brauchst Du dann nicht mal das gesamte Blatt zu entschützen, sondern kannst das aus VBA heraus veranlassen durch den Parmater "UserInterfaceOnly:=True"
VG, Boris
AW: Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 10:51:03
{Boris}
Hi,
wenn C1 mal eine Auswahlzelle ist, in der Du die Währungssymbole zur Auswahl stellst (€, CHF, GBP, USD etc.), dann z.B. bezogen auf Deine Zelle mit dem Namen "Wert1":
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strFormat As String
If Target.Address(0, 0) = "C1" Then
strFormat = "#.##0,00 [$" & Range("C1") & "]"
Range("Wert1").NumberFormatLocal = strFormat
End If
End Sub
VG, Boris
Anzeige
AW: Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 10:51:29
Franz
Danke für deine Antwort.
Kurz zum Verständnis:
Du meinst damit, dass ich mittels eines Buttons für die zwei Zellen jeweils die Formatierung "freischalten" kann ohne die restlichen Zellen freizuschalten?
Was meinst du denn mit liefern die benötigten Ereignisse?
Gruß
AW: Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 11:20:08
{Boris}
Hi Franz,
siehe mein gepostetes Beispiel. Das genutzte Ereignis ist dabei das Change-Ereignis - und in diesem Fall reagierte es auf die Änderung (=Change) der Zelle C1. Diese ist von Haus aus NICHT geschützt sondern enthält eine Auswahlliste der Währungsbezeichnungen.
VG, Boris
AW: Bestimmte Zellen formatieren trotz Blattschutz
03.05.2018 10:43:23
Daniel
Hi
müsstest du nicht irgendwo abfragen, welche Zelle du gerade selektiert hast, dh sowas wie:
If Target.Address = "..." Then
Umschaltenauf Formatieren erlaubt
Else
Umschalten auf Formatieren verboten
End If

bei mir funktioniert folgender Code:
(mit Select Case statt IF-Then, weils bei mehreren Zellen so einfacher ist)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Address(0, 0)
Case "A1", "B1", "A1:B1"
Me.Protect Password:="xxx", AllowFormattingCells:=True
Case Else
Me.Protect Password:="xxx", AllowFormattingCells:=False
End Select
End Sub
die weiteren Schutzeinstellungen kann du ja noch ergänzen.
Den Blattnamen brauchst du nicht explizit hinschreiben.
Der Code befindet sich ja im Modul des betroffenen Tabellenblatts. Wenn du dich auf dieses Blatt bezieehn willst, reicht ME als Blattbezug.
ich habe mal die Zelladressen mit A1 und B1 angebeben, die kannst du dir ja anpassen.
eine kleine Lücke ist noch drin.
wenn du eine der beiden Zellen mit dem Pinselsymbol anklickst, kannst du das Format dieser Zelle auf eine andere Zelle übertragen.
Aber das sollte verschmerzbar sein.
Gruß Daniel
Anzeige

12 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige