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

ActiveSheet.Protect mit weiteren Optionen

Forumthread: ActiveSheet.Protect mit weiteren Optionen

ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:26:25
Maik
Hallöchen,

ich habe folgendes Problem:

Diverse zellen einer Arbeitsmappe sind komplett, also auch gegen Auswahl, geschützt. Lediglich die Zellen in denen der Benutzer Änderungen vornehmen darf sind nicht gesperrt und können somit jederzeit verändert werden.

Nun ist es erforderlich, das zuweilen der Blazzschutz mittels Makro aufgehoben werden muss um einige Änderungen vorzunehmen (bspw. nach Eingabe in eine UserForm). Danach soll der Blattschutz wieder wie vorher funktionieren.

Ich habe jetzt also alles mögliche probiert, in der Recherche gewühlt, die VBA-Hilfe fast auswendig gelernt ;-) und komme einfach nicht auf die Lösung meines Problems.

Kann evtl. jemand helfen?

Bis denne und Danke schonmal im voraus,

Maik

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:32:15
Tobia
Sub BlattSchutzEinAus()
Application.Dialogs(xlDialogProtectDocument).Show
End Sub

oder im deine Code einfügen:

ActiveSheet.Protect
ActiveSheet.Unprotect

Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:36:49
cjp
Sub DEINMAKRO()
ActiveSheet.Unprotect "deinPasswort"
'DEIN MAKRO CODE
ActiveSheet.Protect Password:="deinPasswort"
End Sub

Hallo Maik,

am Beginn deiner Makros jeweils den Blattschutz aufheben, am Ende wieder setzen. Eventuell mit Passwortschutz (Hier entweder mit Passwort:="deinPasswort" falls noch weitere Optionen folgen, oder nur "deinPasswort" für Blattschutz setzen/aufheben ohne weitere Optionen)

Gruss
Christian


Anzeige
Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:42:51
Maik
>Sub BlattSchutzEinAus()
>Application.Dialogs(xlDialogProtectDocument).Show
>End Sub

Das gibt ja die Abfrage mit allen möglichen Schutzoptionen aus. Darauf will ich aber nicht hinaus. Die Optionen sollen automagisch durch das Makro gesetzt werden.

>oder im deine Code einfügen:
>ActiveSheet.Protect
>ActiveSheet.Unprotect

Und genau da hänge ich fest. Beim Protect mit Passwort funktioniert eigentlich alles, nur eben nicht nach meinen Vorstellungen.

Derzeit hab ich folgendes:

ActiveSheet.Protect "test", DrawingObjects:=False, Contents:=True, Scenarios:=True

Dummerweise können nach diesem Schutz auch ungesperrte Zellen nicht mehr beschrieben werden. Gesperrte hingegen können dann trotzdem ausgewählt werden. Es soll aber genau andersherum sein, also Auswahl gesperrter Zellen unmöglich, Änderung ungesperrter Zellen möglich.

:-(

Bis denne,

Maik *verzweifelt*

Anzeige
Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:48:53
Maik
Sowiet war ich ja auch schon, nur eben soll es (wie in meiner Antwort an Tobia beschrieben) etwas mehr sein.

Bis denne,

Maik

Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 13:57:53
cjp
Hallo Maik,

Lösungsansatz bleibt, am Anfang des Makros:

ActiveSheet.Unprotect "test"

Ende des Makros:

With ActiveSheet
.EnableSelection = xlUnlockedCells
.Protect Password:="test", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With

Setzt natürlich voraus, daß die Zelleigenschaften/Schutz richtig sind. (Gesperrt/nicht gesperrt für Auswahl nicht möglich/möglich)

gruss
Christian


Anzeige
Re: ActiveSheet.Protect mit weiteren Optionen
26.09.2002 14:03:24
Maik
Genau das war es. Besten Dank!

Bis denne,

Maik :-)

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveSheet.Protect mit weiteren Optionen im Excel VBA


Schritt-für-Schritt-Anleitung

  1. Blattschutz aufheben: Zu Beginn deines Makros solltest du den Blattschutz aufheben, um Änderungen vornehmen zu können. Verwende dazu den Befehl:

    ActiveSheet.Unprotect "deinPasswort"
  2. Bearbeitungen vornehmen: Füge deinen VBA-Code ein, der die gewünschten Änderungen durchführt.

  3. Blattschutz aktivieren: Nach der Bearbeitung kannst du den Blattschutz mit den gewünschten Optionen wieder aktivieren. Ein Beispiel wäre:

    With ActiveSheet
       .EnableSelection = xlUnlockedCells
       .Protect Password:="deinPasswort", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
  4. Fertig: Dein Makro sollte nun den Blattschutz korrekt behandeln und nur die ungesperrten Zellen zur Eingabe erlauben.


Häufige Fehler und Lösungen

  • Problem: Nach dem Aktivieren des Blattschutzes können auch ungesperrte Zellen nicht mehr bearbeitet werden.

    • Lösung: Stelle sicher, dass die Zelleneigenschaften korrekt gesetzt sind. Verwende EnableSelection = xlUnlockedCells, um nur ungesperrte Zellen auswählbar zu machen.
  • Problem: Gesperrte Zellen sind weiterhin auswählbar.

    • Lösung: Achte darauf, dass du beim Protect-Befehl die Optionen korrekt festlegst, insbesondere DrawingObjects, Contents und Scenarios.

Alternative Methoden

Wenn du nicht mit Passwortschutz arbeiten möchtest, kannst du den Blattschutz auch ohne Passwort aktivieren. Der Code würde dann so aussehen:

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Diese Methode ist nützlich, wenn dein Arbeitsblatt keine sensiblen Daten enthält und du den Schutz nur zur Vermeidung von versehentlichen Änderungen benötigst.


Praktische Beispiele

Hier ist ein vollständiges Beispiel, das die oben genannten Schritte zusammenführt:

Sub SchutzMitPasswort()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ' Blattschutz aufheben
    ws.Unprotect "test"

    ' Hier dein Makrocode

    ' Blattschutz aktivieren
    With ws
        .EnableSelection = xlUnlockedCells
        .Protect Password:="test", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub

In diesem Beispiel wird das aktive Arbeitsblatt mit einem Passwort geschützt, und nur ungesperrte Zellen sind auswählbar.


Tipps für Profis

  • Nutzereingaben: Überlege, wie du Nutzereingaben in einer UserForm verarbeiten kannst. Verwende den Blattschutz nur, wenn es unbedingt notwendig ist, um eine bessere Benutzererfahrung zu gewährleisten.

  • Optionen kombinieren: Experimentiere mit verschiedenen Kombinationen von Schutzoptionen, um die für deine Anwendung optimalen Einstellungen zu finden.

  • Dokumentation: Halte deine VBA-Projekte gut dokumentiert, insbesondere wenn du komplexe Blattschutz-Logiken implementierst. Das hilft dir und anderen, den Code später besser zu verstehen.


FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz ohne Passwort aufheben?
Du kannst den Blattschutz einfach mit ActiveSheet.Unprotect aktivieren, ohne ein Passwort anzugeben, wenn ein Passwort nicht gesetzt wurde.

2. Welche Optionen kann ich beim Schützen eines Blattes verwenden?
Zu den Optionen gehören DrawingObjects, Contents, Scenarios sowie AllowFormattingCells, AllowSorting und viele mehr. Du kannst diese entsprechend deinen Anforderungen kombinieren.

3. Was ist der Unterschied zwischen Protect und Worksheet.Protect?
Beide Befehle dienen dem Zweck, ein Arbeitsblatt zu schützen, jedoch wird Worksheet.Protect häufig verwendet, um die Lesbarkeit des Codes zu verbessern, da es klar macht, dass du auf ein Arbeitsblatt zugreifst.

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