Ich muss bestimmte Zellbereiche bzw. ganze Tabellen-Blätter (wegen Formeln) schützen.
Wenn ich aber Blattschutz aktiviere, kann mein Makro (eine Sortierfunktion) nicht mehr ausgeführt werden.
Es kommt dann eine Fehlermeldung des Visual Basic „Laufzeitfehler“, mit der Möglichkeit zu „Debuggen“ oder zu „Beenden“.
Was kann ich machen, um das Makro trotz des Blattschutzes ausführen zu können. Beide (Sortier-Makro und Formelschutz) sind sehr wichtig!!
Beim Blattschutz gibt es drei Optionen: Inhalte, Objekte, Szenarien. Auch wenn nur die Option „Inhalte“ aktiviert ist, kann das Makro trotzdem nicht ausgeführt werden.
Und, was bedeutet eigentlich „Debuggen“?
ActiveSheet.Unprotect Password:="Dein Passwort"
und am Ende des Makros ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="Dein Passwort"
wobei das „DrawingObjects:=True, Contents:=True, Scenarios:=True“ sich auf die Einstellungen der Schutzart bezieht, wie sie auch im Menüpunkt „Blatt schützen“ aufgeführt sind. (Ich arbeite mit einer US-Version, deshalb die englischen Ausdrücke).
Grüße, Fritz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
das funktioniert bei mir leider nicht. Habe die fettformatierten Sachen wie beschrieben eingefügt. Beim Makroausführen kommt dann aber folgende Meldung: „Fehler beim Kompilieren, Außerhalb einer Prozedur ungültig“. In dem Code ist dann das Passwort blau markiert.
Kannst du damit, mit der Fehlermeldung, was anfangen?
Gruß Lena
PS: Kenne mich nicht sonderlich in Makros aus. Habe grade gelernt, wie man ein Makro aufzeichnet und wie der beim Wechseln der Tabellenblätter automatisch ausgeführt werden soll.
das funktioniert bei mir leider nicht. Habe die
fettformatierten Sachen wie beschrieben eingefügt. Beim
Makroausführen kommt dann aber folgende Meldung: „Fehler beim
Kompilieren, Außerhalb einer Prozedur ungültig“. In dem Code
ist dann das Passwort blau markiert.
Kannst du damit, mit der Fehlermeldung, was anfangen?
Gruß Lena
PS: Kenne mich nicht sonderlich in Makros aus. Habe grade
gelernt, wie man ein Makro aufzeichnet und wie der beim
Wechseln der Tabellenblätter automatisch ausgeführt werden
soll.
Hallo Lena,
Hauptverdächtiger:
Der Befehl zum schützen/öffnen steht außerhalb der Sub
Siehe oben
Möglichkeit:
Passwort richtig geschrieben? Passwort in Anführungszeichen gesetzt? Beim Schützen und beim Öffnen?
zeichne mal mit dem Makro-rekorder den Vorgang des Blattschützens selbst auf. Es liegt möglicherweise an der Länderversion (US? Deutsch?), daß er Befehle falsch interpretiert. (Inhalte Contents)
Hauptverdächtiger:
Der Befehl zum schützen/öffnen steht außerhalb der Sub
genau daran lag es!
Da ich – als Neuling, was die Makros angeht – die Befehle schön brav ganz an den Anfang bzw. ganz an das Ende gesetzt hatte, konnte dies auch nicht funktionieren.
Mit „außerhalb des Sub“ konnte ich erst mal auch nichts anfangen.
Nun ist aber frau wieder etwas schlauer.
Ich danke dir für die Lösung!
Gruß Lena
Eine Frage noch:
Bei mir ist nach Ausführen eines Makros die Rückgängig-Aktion nicht mehr möglich. Ist auch dieses Problem lösbar?
Bei mir auch nicht. Es liegt daran, daß, banal ausgedrückt, die Befehle des Makros „von innen“ kommen und nicht von außen, wie bei der Tastatureingabe, wo sie Excel-intern zwischengespeichert werden.
Das ist aber meine ganz persönliche meinung ohne anspruch auf Richtigkeit. Aber ich kann es mir nur so vorstellen.
Grüße, ich.
Bei Fragen, nur zu!
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hab noch was vergessen:
UNBEDINGT das VBA-Projekt mit Passwort schützen, weil sonst jeder Dein Makro lesen kann und da steht das Passwort für die Arbeitsmappe im Klartext drin:
Das geht so:
VBA-Editor öffnen [ALT] + [F11]
In der Menüleiste des aktiven Makros -> Extras -> Eigenschaften von VBA-Projekt -> Registerkarte „Schutz“ die Option „Projekt für die anzeige sperren“ aktivieren.
Passwort vergeben.
Fertisch.
Und das Passwort merken!!!
Dann solltest Du noch ein Zertifikat ausstellen, damit die User nicht jedesmal die Abfrage bekommen, ob sie die Makros aktivieren sollen.
Steht auch unter Extras.
Der rest mit der Zertifizierung steht in der windows-Hilfe
… und solltest Du zwischenzeitlich noch keine Antwort auf die Frage nach dem „Debuggen“ erhalten haben:
frei übersetzt steht das für „Fehlersuche“ bzw. „Fehler-Entfernung“
Wenn Du „Debug“ anklickst, dann siehst Du im Makro-Code die Stelle, an der das Makro „ausgestiegen“ ist. Somit kannst/könntest Du genau an dieser Stelle mit der „Reparatur“ ansetzen…
Viel Erfolg weiterhin.
Gruß
Eneri
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]