Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Blattschutz mit Ausnahmen per VBA

Blattschutz mit Ausnahmen per VBA
13.04.2009 12:33:19
Fritz_W
Hallo Excelfreunde,
ich würde gerne per Makro folgendes erledigen:
Im jeweils aktiven Tabellenblatt sollte ein Blattschutz mit Passwort (z.B. "geschuetzt" gesetzt werden.
Eingaben sollten jedoch weiterhin in allen Zellen des Zellbereichs "B2:K12" möglich sein, die zu diesem Zeitpunkt leer sind.
Für eure Unterstützung im Voraus besten Dank
und allen Forumsbesuchern noch einen schönen Osterfeiertag
mfg
Fritz
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz mit Ausnahmen per VBA
13.04.2009 12:37:39
Tino
Hallo,
gebe den Parameter bei Protect "UserInterfaceOnly" mit True an. (siehe auch in der Hilfe)
Dieser muss bei jedem öffnen der Datei neu gesetzt werden.
Beispiel: Tabelle1.Protect "xxx", , , , True
Gruß Tino
AW: Blattschutz mit Ausnahmen per VBA
13.04.2009 12:45:27
Fritz_W
Hallo Tino,
vielen Dank für deine Hilfe.
Leider reichen meine VBA-Kenntnisse nicht aus, um Deine Vorgaben erfolgreich umzusetzen.
Brauche zusätzliche Hilfe.
mfg
Fritz
Anzeige
AW: Blattschutz mit Ausnahmen per VBA
13.04.2009 13:01:37
Tino
Hallo,
habe Dich wahrscheinlich falsch verstanden.
Du möchtest ja Handeingabe in leeren Zellen zulassen.
Versuche es mal so.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_Open() 
Dim Bereich As Range 
 
Set Bereich = ActiveSheet.Range("B2:K12") 
ActiveSheet.Protect "xxx", , , , True 
 
For Each Bereich In Bereich 
 Bereich.Locked = Not Bereich = "" 
Next Bereich 
End Sub 
 
Private Sub Workbook_SheetActivate(ByVal Sh As Object) 
Dim Bereich As Range 
 
Set Bereich = Sh.Range("B2:K12") 
Sh.Protect "xxx", , , , True 
 
For Each Bereich In Bereich 
 Bereich.Locked = Not Bereich = "" 
Next Bereich 
 
End Sub 


Gruß Tino

Anzeige
AW: Blattschutz mit Ausnahmen per VBA
13.04.2009 15:30:39
Fritz_W
Hallo Tino,
sorry, dass ich erst so spät antworte, ich bekam (überraschend) Besuch.
Dein Code funktioniert wie gewünscht.
Besten Dank.
Schönen Feiertag noch
Fritz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Blattschutz mit Ausnahmen per VBA


Schritt-für-Schritt-Anleitung

Um ein Excel-Blatt zu schützen und gleichzeitig Ausnahmen für bestimmte Zellen zu ermöglichen, kannst du den folgenden VBA-Code verwenden. Dieser Code setzt einen Blattschutz mit Passwort und erlaubt Eingaben in leere Zellen des Bereichs "B2:K12".

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle im Projektfenster „DieseArbeitsmappe“ aus.
  3. Füge den folgenden Code ein:
Option Explicit

Private Sub Workbook_Open()
    Dim Bereich As Range

    Set Bereich = ActiveSheet.Range("B2:K12")
    ActiveSheet.Protect "geschuetzt", , , , True

    For Each Bereich In Bereich
        Bereich.Locked = Not Bereich = ""
    Next Bereich
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Dim Bereich As Range

    Set Bereich = Sh.Range("B2:K12")
    Sh.Protect "geschuetzt", , , , True

    For Each Bereich In Bereich
        Bereich.Locked = Not Bereich = ""
    Next Bereich
End Sub
  1. Schließe den VBA-Editor und speichere die Arbeitsmappe als „Excel-Makro-fähige Arbeitsmappe“ (*.xlsm).
  2. Öffne die Arbeitsmappe erneut, um den Blattschutz zu aktivieren.

Mit diesem VBA-Skript kannst du den Blattschutz aufheben und gleichzeitig die Eingabe in leere Zellen ermöglichen.


Häufige Fehler und Lösungen

  • Fehler: Blattschutz wird nicht angewendet.

    • Stelle sicher, dass du die Datei als Makro-fähige Arbeitsmappe speicherst. Andernfalls wird der VBA-Code nicht ausgeführt.
  • Fehler: Eingabe in geschützten Zellen möglich.

    • Überprüfe, ob der Bereich „B2:K12“ korrekt definiert ist und dass der Code im richtigen Modul eingefügt wurde.

Alternative Methoden

Wenn du den Blattschutz mit Ausnahmen ohne VBA umsetzen möchtest, kannst du auch die Excel-Funktion „Blattschutz“ verwenden und die Option „Zellen entsperren“ für die gewünschten Zellen aktivieren, bevor du den Blattschutz aktivierst.

  1. Markiere den Bereich „B2:K12“.
  2. Klicke mit der rechten Maustaste und wähle „Zellen formatieren“.
  3. Gehe zum Tab „Schutz“ und deaktiviere das Kontrollkästchen „Gesperrt“.
  4. Aktiviere dann den Blattschutz über das Menü „Überprüfen“ und setze dein Passwort.

Praktische Beispiele

Ein Beispiel für die Verwendung des VBA-Codes könnte wie folgt aussehen:

  • Du hast ein Arbeitsblatt für die Eingabe von Daten, das geschützt werden soll, um versehentliche Änderungen zu vermeiden. Der oben genannte VBA-Code ermöglicht es Benutzern, nur in leeren Zellen innerhalb des angegebenen Bereichs einzugeben, während der Rest des Blattes geschützt bleibt.

Tipps für Profis

  • VBA blattschutz mit Passwort: Achte darauf, ein sicheres Passwort zu wählen und es an einem sicheren Ort zu speichern, um den Zugang zu wichtigen Daten zu schützen.
  • Planung der Blattschutzoptionen: Überlege dir im Voraus, welche Zellen für die Benutzer bearbeitbar sein sollen und plane die Ausnahmen entsprechend.

FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz aufheben?
Du kannst den Blattschutz aufheben, indem du im Menü „Überprüfen“ auf „Blattschutz aufheben“ klickst und das Passwort eingibst.

2. Funktioniert dieser VBA-Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren. Achte darauf, dass Makros aktiviert sind.

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