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

Forumthread: Blattschutz per VBA aktivieren und deaktivieren

Blattschutz per VBA aktivieren und deaktivieren
16.11.2005 11:46:52
Thilo
Hallo,
ich brauche eine Excel-Tabelle die nur durch VBA-Funktionen gefüllt werden darf. Der Benutzer darf aber fleißig drin rum klicken und dadurch Dialoge öffnen.
Ich dachte an einen Blattschutz, der sozusagen die Tabelle vor manuellen Benutzereingaben bewahrt. Aber damit meine Dialoge was rein schreiben können, muss der Blattschutz für diese Zeit aufgehoben werden.
Wie sieht denn in VBA der Code um den Blattschutz zu aktivieren bzw. zu deaktivieren aus?
Oder völliger Bockmist und es geht anders sauberer?
ciao, Thilo
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz per VBA aktivieren und deaktivieren
16.11.2005 11:59:16
Gerhard
Hallo!
Ich habs gelöst indem ich ein Macro geschriben habe für BlattschutzAus u. Blattschutz.

Sub Blattschutz()
ActiveSheet.Protect Password:="Passwortname", UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Sub BlattschutzAus()
ActiveSheet.Unprotect Password:="Passwortname"
End Sub

Wenn du in einem Macro den Blattschutz ausschalten willst dann kannst du im Macro dies mit "Call BlattschutzAus" tun und mit "Call Blattschutz" wieder aktivieren.
Wenn du die Macros mit einer Tasenkombination belegst z.B. (Strg + b)dann kannst du auch schnell den Blattschutz aus u. einschalten.
Hoffe du kannst etwas damit anfangen.
Gruss
Gerhard
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Blattschutz in Excel per VBA aktivieren und deaktivieren


Schritt-für-Schritt-Anleitung

Um den Blattschutz in Excel per VBA zu aktivieren und zu deaktivieren, kannst du folgende Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ und wähle „Einfügen“ > „Modul“.
  3. Füge den folgenden Code ein:

    Sub Blattschutz()
       ActiveSheet.Protect Password:="Passwortname", UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub
    
    Sub BlattschutzAus()
       ActiveSheet.Unprotect Password:="Passwortname"
    End Sub
  4. Speichere das Modul:

    • Schließe den VBA-Editor und speichere deine Excel-Datei als Makro-fähige Datei (z.B. .xlsm).
  5. Füge Tastenkombinationen hinzu (optional):

    • Du kannst den Makros eine Tastenkombination zuweisen, um den Blattschutz schnell ein- und auszuschalten.

Häufige Fehler und Lösungen

  • Fehler: Makro läuft nicht
    Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ und aktiviere die Option „Alle Makros aktivieren“.

  • Fehler: Passwort falsch
    Achte darauf, dass das Passwort in den beiden Subroutinen identisch ist.

  • Fehler: Blattschutz nicht wirksam
    Überprüfe, ob du das richtige Blatt aktiviert hast, bevor du das Makro ausführst.


Alternative Methoden

  1. Excel-Funktionen nutzen:

    • Du kannst den Blattschutz auch über die Benutzeroberfläche aktivieren: Gehe zu „Überprüfen“ > „Blatt schützen“.
    • Diese Methode ist jedoch weniger flexibel und erfordert manuelle Eingaben.
  2. Alle Blätter schützen:

    • Wenn du den Blattschutz für alle Blätter in einer Arbeitsmappe aktivieren möchtest, kannst du ein Makro verwenden:
      Sub AlleBlaetterSchuetzen()
      Dim ws As Worksheet
      For Each ws In ThisWorkbook.Worksheets
         ws.Protect Password:="Passwortname"
      Next ws
      End Sub

Praktische Beispiele

  • Blattschutz mit Ausnahmen: Wenn du bestimmte Zellen bearbeitbar halten möchtest, kannst du diese vor dem Aktivieren des Blattschutzes entsperren:

    Sub BlattschutzMitAusnahmen()
      ActiveSheet.Unprotect Password:="Passwortname"
      Range("A1:B2").Locked = False
      ActiveSheet.Protect Password:="Passwortname"
    End Sub
  • Blattschutz aufheben und wieder setzen:

    Sub SchutzAufhebenUndWiederSetzen()
      Call BlattschutzAus
      ' Hier deine Aktionen durchführen
      Call Blattschutz
    End Sub

Tipps für Profis

  • VBA Blattschutz mit Passwort: Wenn du häufig mit Blattschutz arbeitest, kannst du das Passwort als Variable definieren, um es einfacher zu ändern. Zum Beispiel:

    Dim Passwort As String
    Passwort = "deinPasswort"
  • Blattschutz vba Optionen: Experimentiere mit den verschiedenen Optionen der Protect-Methode, wie UserInterfaceOnly, um die Benutzerfreundlichkeit zu verbessern.

  • Makros zulassen: Achte darauf, dass die entsprechenden Einstellungen in Excel aktiviert sind, um die Ausführung deiner Makros zu ermöglichen.


FAQ: Häufige Fragen

1. Wie kann ich den Blattschutz ohne Passwort aufheben?
Wenn der Blattschutz mit einem Passwort gesetzt wurde, benötigst du dieses Passwort, um den Schutz aufzuheben.

2. Gibt es eine Möglichkeit, den Blattschutz automatisch zu aktivieren?
Ja, du kannst das Makro beim Öffnen der Datei automatisch ausführen lassen, indem du das folgende Ereignis in das „Diese Arbeitsmappe“-Modul einfügst:

Private Sub Workbook_Open()
    Call Blattschutz
End Sub

3. Kann ich den Blattschutz für bestimmte Benutzer anpassen?
Ja, du kannst verschiedene Passwörter oder Benutzerrollen definieren, um den Zugriff individuell zu steuern.

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