Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zellen formatieren trotz Blattschutz in Excel


Schritt-für-Schritt-Anleitung

Um bestimmte Zellen in einem geschützten Excel-Blatt zu formatieren, kannst du folgende Schritte befolgen:

  1. Zellen auswählen: Bestimme zuerst, welche Zellen (z.B. Wert1 und Suche1) du formatierbar halten möchtest.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Füge ein neues Modul zu deinem Arbeitsblatt hinzu.

  4. Code einfügen: Verwende den folgenden Code, um den Blattschutz und die Formatierung für bestimmte Zellen zu ermöglichen:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
       If Target.Address = "$Wert1" Or Target.Address = "$Suche1" Then
           Me.Unprotect Password:="DeinPasswort"
           Target.Locked = False
           Me.Protect Password:="DeinPasswort", AllowFormattingCells:=True
       Else
           Me.Protect Password:="DeinPasswort"
       End If
    End Sub
  5. Ereignisse nutzen: Stelle sicher, dass das SelectionChange-Ereignis genutzt wird, um die Formatierungsänderungen nur bei Auswahl der spezifischen Zellen zu erlauben.

  6. Testen: Gehe zurück zu deinem Excel-Blatt, wähle die Zellen aus und teste, ob die Formatierung funktioniert.


Häufige Fehler und Lösungen

  • Fehler 438: Wenn du die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht" erhältst, überprüfe, ob die Zellreferenzen korrekt sind und ob die Zellen nicht bereits gesperrt sind.

  • Blattschutz aktiv: Achte darauf, dass der Schutz des Blattes nach dem Entsperren der Zellen korrekt wieder aktiviert wird. Wenn du alle Zellen bearbeitbar machst, ist es besser, spezifische Zellen auszunehmen, um den Blattschutz für bestimmte Zellen aufrechtzuerhalten.


Alternative Methoden

Eine alternative Methode zur Verwaltung des Blattschutzes und zur Erlaubnis von Formatierungen ist die Verwendung von Schaltflächen oder Dropdown-Listen, die von VBA gesteuert werden. Anstatt die Zellen direkt zu entsperren, kannst du:

  1. Dropdown-Liste für Formate: Füge eine Dropdown-Liste in eine nicht geschützte Zelle ein, die verschiedene Formatierungsoptionen enthält.
  2. VBA zur Formatänderung: Verwende den Change-Ereignis-Handler, um die Formatierung der geschützten Zellen basierend auf der Auswahl in der Dropdown-Liste zu ändern.

Praktische Beispiele

Hier ist ein Beispiel, um die Formatierung einer Zelle basierend auf einer Auswahl in einer anderen Zelle zu ändern:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strFormat As String
    If Target.Address(0, 0) = "C1" Then ' C1 ist hier die Zelle mit der Auswahl
        strFormat = "#.##0,00 [$" & Range("C1") & "]"
        Range("Wert1").NumberFormatLocal = strFormat
    End If
End Sub

Mit diesem Code kannst du die Formatierung von Wert1 ändern, basierend auf der Auswahl in C1, ohne den gesamten Blattschutz aufzuheben.


Tipps für Profis

  • Ereignisse effizient nutzen: Nutze VBA-Ereignisse wie SelectionChange oder Change, um flexibel auf Benutzerinteraktionen zu reagieren, ohne den Blattschutz unnötig aufzuheben.
  • Zellensperrung kombinieren: Setze den Locked-Status der Zellen gezielt, um den Schutz nur für nicht benötigte Zellen aufrechtzuerhalten.
  • Regelmäßige Sicherung: Mache regelmäßig Backups deiner Excel-Datei, bevor du umfangreiche Änderungen an VBA vornimmst.

FAQ: Häufige Fragen

1. Wie kann ich bestimmte Zellen im Blattschutz ausnehmen?
Du kannst Zellen mit VBA so konfigurieren, dass sie trotz Blattschutz bearbeitbar sind, indem du den AllowFormattingCells-Parameter beim Schützen des Blattes nutzt.

2. Ist es möglich, den Blattschutz temporär aufzuheben, um Formatierungen vorzunehmen?
Ja, du kannst den Blattschutz temporär mit VBA aufheben, um spezifische Formatierungen vorzunehmen, und danach das Blatt wieder schützen.

3. Welche Excel-Version benötige ich für diese Funktionen?
Die beschriebenen Methoden sind in Excel 2007 und neueren Versionen verfügbar, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige