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

Schaltflächen trotz Blattschutz aktivieren

Forumthread: Schaltflächen trotz Blattschutz aktivieren

Schaltflächen trotz Blattschutz aktivieren
Frank
Guten Tag, zusammen!
Ich habe ein Formular in einem Registerblatt entworfen. Es ist ohne eine so genannte UserForm angelegt, also nur mit Blattschutz: Die Zellen, in die der Benutzer etwas eingeben kann, haben nicht mehr die Eigenschaft "Gesperrt", so dass nach Aktivieren des Blattschutzes Eingaben nur in diese wenigen Zellen möglich sind.
Auf einem weiteren Registerblatt erfolgt die Auswertung der von dem Benutzer gemachten Angaben in einer Tabelle, für die ich vorsichtshalber 2000 Zeilen vorgesehen habe. Damit eine Druckausgabe nur des Relevanten möglich wird, habe ich zur Druckvorbereitung eine Schaltfläche angelegt und dieser Schaltfläche (mit Hilfe des Makrorekorders - für mehr reichen meine Kenntnisse nicht) das Setzen eines Autofilters zugewiesen. Darüber, dass es so weit funktioniert, freute ich mich schon, aber offenbar zu früh: Wenn ich jetzt den Blattschutz aktiviere, kann ich die Schaltfläche nicht mehr benutzen. Ich erhalte die Fehlermeldung "Dieser Befehl kann in einer geschützten Tabelle nicht verwendet werden." Es folgt ein Hinweis, wie der Blattschutz aufzuheben sei.
Ich würde gern mit Hilfe des Blattschutzes vermeiden, dass die Benutzer des Formulars ungewollt "kostbare" Formeln zerstören und ihnen andererseits die Vorbereitung zum Drucken per Schaltfläche ermöglichen.
Weiß jemand Rat?
Schon im voraus vielen Dank für Eure Mühe.
Viele Grüße
Frank
Anzeige
AW: Schaltflächen trotz Blattschutz aktivieren
Ulf
Du meinst, du möchtest den Autofilter trotz Blattschutz verwenden?
Ulf
AW: Schaltflächen trotz Blattschutz aktivieren
Frank
Hallo, Ulf!
Ja, das war eigentlich meine Idee. Geht das nicht?
Ich vermutete bisher (weil ich so etwas erstmals mache), dass das mit der Schaltfläche verbundene Makro nicht ausgeführt werden kann, weil der Blattschutz aktiv ist, das heißt, dass bei aktiviertem Blattschutz nicht nur dieses Makro, sondern überhaupt keines ausgeführt werden kann.
Viele Grüße
Frank
Anzeige
AW: Schaltflächen trotz Blattschutz aktivieren
Matthias
Hallo Frank,
wie lautet Dein Code denn?
Du müsstest vor einer Änderung des Blattes per Makro den Blattschutz aufheben:
vor der Änderung
ActiveSheet.Unprotect Password:="123"
und anschließend wieder setzen:
ActiveSheet.Protect Password:="123"
Gruß Matthias
AW: Schaltflächen trotz Blattschutz aktivieren
Frank
Hallo, Matthias G!
Freundlicher- und dankenswerterweise beschäftigst Du Dich wieder mal mit einem meiner Excel-Probleme (gestern schon einmal).
Wie der Code lautet, weiß ich nicht. Ich werde wohl erst mal herausfinden müssen, wie ich den Code lesen kann.
Bitte entschuldige diese - zugegeben - dämliche Antwort, aber ich bin Anfänger.
Viele Grüße
Frank
Anzeige
AW: Schaltflächen trotz Blattschutz aktivieren
Matthias
Hallo Frank,
mit Alt-F8 das Makro-Fenster herholen, das Makro in der Liste markieren und auf "Bearbeiten" klicken - da siehst Du es und kannst es hier rein kopieren.
Gruß Matthias
AW: Schaltflächen trotz Blattschutz aktivieren
Frank
Hallo, Matthias!
Schon passiert. Ich bin irgenwie mit Alt+F11 in die Codes gekommen.
Diese Tastenkombination hatte ich mal irgendwo gelesen.
Den Code habe ich schon ins Forum gestellt. Wir sind da um ein paar Sekunden aneinander vorbeigerauscht.
Wirf doch bitte mal einen Blick darauf.
Vielen Dank.
Gruß
Frank
Anzeige
AW: Schaltflächen trotz Blattschutz aktivieren
Matthias
Hallo Frank,
wenn ich das richtig interpretiere, soll der Autofilter einige Zeilen ausblenden.
Ich schätze mal, am Ende des Makros soll der Autofilter wieder ausgeschaltet und die Spalte A wieder eingeblendet werden...?

Sub Druckvorbereitung()
' Druckvorbereitung Makro
' Makro am 19.04.2004 aufgezeichnet
' modifiziert am 21.04.2004
' Tastenkombination: Strg+d
ActiveSheet.Unprotect
Range("A10").AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
Columns("A:A").Hidden = True
ActiveWindow.SelectedSheets.PrintPreview
Columns("A:A").Hidden = False
Range("A10").AutoFilter
ActiveSheet.Protect
End Sub

Gruß Matthias
Anzeige
Erster Lösungsschritt gefunden! Geht es so weiter?
Frank
Hallo, Matthias G!
Ich habe mich einfach mal getraut (als Anfänger hat man ja immer Angst, wesentliche Dinge zu zerstören) und die in Deiner ersten Antwort enthaltenen Hinweise
ActiveSheet.Unprotect
...
ActiveSheet.Protect
vor und hinter den Code gesetzt. Offensichtlich funktioniert es. Ich bin äußerst positiv überrascht!
Du hast es übrigens richtig verstanden: Zunächst sollte der Autofilter gesetzt werden, damit die überflüssigen Zeilen, die keine Daten enthalten (im Zweifel der weitaus größte Teil der Tabelle, weil sie "auf Vorrat" angelegt ist), für die Druckausgabe verschwinden. Anschließend sollte die Spalte A, die das "Maß aller Dinge" für die Unterscheidung von "relevant" und "überflüssig" ist (denn sie enthält nur dort Ziffern, wo etwas in den Spalten B bis ... steht) ausgeblendet werden. Dann führt das Makro in die Seitenansicht, damit der Benutzer vor dem Drucken sieht, was dabei rauskommt. Hier ließ ich die Aufzeichnung enden, damit vor dem Drucken evtl. noch Änderungen der Einstellungen vorgenommen werden können.
Die Idee war, dass der Benutzer dann das Drucken des Registerblatts selbst veranlasst.
Anschließend stellte ich eine weitere Schaltfläche mit dem Makro "Druckvorbereitung rückgängig" zur Verfügung. Der Code lautet wie folgt:

Sub DruckvorbereitungRückgängig()
' DruckvorbereitungRückgängig Makro
' Makro am 19.04.2004 aufgezeichnet
' Tastenkombination: Strg+r
Cells.Select
Selection.EntireColumn.Hidden = False
Selection.AutoFilter
Range("B10").Select
End Sub

So bleibt es dem Benutzer überlassen, ob er drucken will oder nicht oder ob er die Datei sofort wieder löscht (bzw. gar nicht erst speichert), denn der Inhalt der Datei ist äußerst kurzlebig: Es handelt sich um eine Datei zur Berechnung von Zinsrückständen mit gleitenden Zinssätzen auf der Grundlage des Basiszinssatzes nach § 247 BGB.
Vermute ich richtig, dass ich auch den zweiten Code mit "ActiveSheet.Unprotect" und "ActiveSheet.Protect" ergänzen muss?
Nochmals vielen Dank!
Viele Grüße
Frank
Anzeige
AW: Hat sich erledigt, oder?
Matthias
...Du hast ja scheinbar eine Lösung für Dich gefunden!
Gruß Matthias
Erfreulicherweise erledigt!
Frank
Hallo, Matthias G!
Die Frage beantworte ich mit einem klaren "Ja."
Mit Hilfe Deiner Anregungen konnte ich die Formulardatei bzw. die Makrocodes so verändern, dass das Wunschergebnis erzielt wurde.
Nochmals Danke!
Viele Grüße
Frank
Anzeige
HURRA! GELÖST! MATTHIAS G SEI DANK!
Frank
Hallo, Matthias G!
Es funktioniert wie gedacht!
Wie alle Lösungen, wenn sie erst mal gefunden sind und schwarz auf weiß da stehen, ist auch diese einfach.
Allein hätte ich mich nie getraut, in Codes herumzufummeln. Dank Deiner moralischen und technischen Unterstützung habe ich wieder ein Stück Excel-Wissen hinzugewonnen.
Nochmals ein Dank in verschärfter Form!
Viele Grüße
Frank
Anzeige
AW: Danke für die Rückmeldung! - o.T.
21.04.2004 13:23:49
Matthias
:-)
AW: Schaltflächen trotz Blattschutz aktivieren
Frank
Hallo, Matthias G!
Ich glaube, ich habe den Code herausgefunden.
Er lautet wie folgt:

Sub Druckvorbereitung()
' Druckvorbereitung Makro
' Makro am 19.04.2004 aufgezeichnet
' Tastenkombination: Strg+d
Range("A10").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.SelectedSheets.PrintPreview
End Sub

Muss ich jetzt da was ergänzen?
Ein Passwort habe ich für den Blattschutz nicht vergeben.
Viele Grüße
Frank
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Schaltflächen aktivieren trotz Blattschutz in Excel


Schritt-für-Schritt-Anleitung

Um Schaltflächen in Excel trotz aktivem Blattschutz zu nutzen, musst du sicherstellen, dass das dazugehörige Makro den Blattschutz vor und nach der Ausführung aufhebt. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Makro öffnen: Drücke Alt + F8, um das Makro-Fenster zu öffnen.
  2. Makro bearbeiten: Wähle das entsprechende Makro aus und klicke auf "Bearbeiten", um den VBA-Editor zu öffnen.
  3. Blattschutz heben: Füge am Anfang des Makros folgenden Code ein:
    ActiveSheet.Unprotect
  4. Makro ausführen: Füge den gewünschten Code für die Schaltfläche ein, z.B. das Setzen eines Autofilters.
  5. Blattschutz wieder aktivieren: Füge am Ende des Makros folgenden Code ein:
    ActiveSheet.Protect
  6. Speichern: Schließe den VBA-Editor und speichere die Änderungen.

Hier ist ein Beispiel für ein einfaches Makro, das diese Schritte umsetzt:

Sub Druckvorbereitung()
   ActiveSheet.Unprotect
   Range("A10").AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd
   Columns("A:A").Hidden = True
   ActiveWindow.SelectedSheets.PrintPreview
   Columns("A:A").Hidden = False
   ActiveSheet.Protect
End Sub

Häufige Fehler und Lösungen

  1. Fehlermeldung bei geschütztem Blatt: Wenn du versuchst, das Makro auszuführen und eine Fehlermeldung erhältst, dass der Befehl in einer geschützten Tabelle nicht verwendet werden kann, überprüfe, ob du den ActiveSheet.Unprotect Code korrekt eingefügt hast.

  2. Blattschutz ohne Passwort: Wenn du keinen Passwortschutz für den Blattschutz eingerichtet hast, kannst du den ActiveSheet.Unprotect Code ohne Passwort verwenden. Bei Passwortschutz musst du das Passwort angeben.


Alternative Methoden

Falls du keine Makros verwenden möchtest, kannst du auch Schaltflächen in Excel über die Benutzeroberfläche aktivieren, indem du die Eigenschaften der Schaltfläche anpasst. Diese Methode ist jedoch limitiert und bietet nicht die Flexibilität eines Makros.

  1. Rechtsklick auf die Schaltfläche.
  2. Eigenschaften auswählen: Hier kannst du verschiedene Einstellungen vornehmen, allerdings bleibt der Blattschutz aktiv.

Praktische Beispiele

  • Beispiel 1: Du hast ein Formular, in dem Benutzer Daten eingeben. Nutze ein Makro, um die Eingaben zu filtern und nur relevante Daten auszudrucken.
  • Beispiel 2: Erstelle eine Schaltfläche, die durch ein Makro die Daten auf einem geschützten Blatt aktualisiert, indem du den Blattschutz kurz aufhebst.

Tipps für Profis

  • Verwende Passwörter: Schütze dein Blatt mit einem Passwort, um sicherzustellen, dass nur autorisierte Benutzer Änderungen vornehmen können.
  • Code kommentieren: Kommentiere deinen VBA-Code, damit du später leichter nachvollziehen kannst, was jeder Teil des Codes macht.
  • Testumgebung nutzen: Teste deine Makros in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Blattschutz aktivieren, ohne die Schaltflächen zu deaktivieren? Ja, du kannst den Blattschutz aktivieren, aber du musst sicherstellen, dass dein Makro den Blattschutz vor der Ausführung aufhebt und danach wieder aktiviert.

2. Wie kann ich den Blattschutz in Excel aktivieren? Um den Blattschutz zu aktivieren, gehe zu "Überprüfen" > "Blatt schützen". Hier kannst du auch ein Passwort festlegen, um das Blatt zu schützen.

3. Was passiert, wenn ich den Blattschutz nicht aufhebe? Wenn der Blattschutz aktiv ist, kannst du keine Änderungen an geschützten Zellen vornehmen oder die Schaltflächen verwenden, die mit Makros verbunden 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