Makro läuft nicht bei Blattschutz

Hallo,

vielleicht kann mir jemand eine Lösung meines Problems nennen.

Ich habe in einer Arbeitsmappe eine Arbeitsblatt, welches automatisch mit Daten befüllt wird. Dieses Arbeitsblatt soll geschützt werden, damit die Formeln nicht überschrieben werden.

Allerdings befinden sich in dem Arbeitsblatt einige Makros zum Ein- und Ausblenden von Zeilen mit weiteren Inhalten.

Wenn ich das Arbeitsblatt schütze, laufen meine Makros nicht mehr. Ich habe jetzt schon fast alles versucht, aber es funktioniert irgendwie nicht.

Gibt es eine Möglichkeit, dass Zellen vor Überschreiben geschützt werden und trotzdem die Makros laufen??

Vielen Dank schon mal im voraus.

Stefan

Grüezi Stefan

Wenn ich das Arbeitsblatt schütze, laufen meine Makros nicht
mehr. Ich habe jetzt schon fast alles versucht, aber es
funktioniert irgendwie nicht.

Gibt es eine Möglichkeit, dass Zellen vor Überschreiben
geschützt werden und trotzdem die Makros laufen??

Hebe zu Beginn deines Makros den Blattschutz auf und setze ihn anschlissend wieder.

Den Code dazu bekommst Du mit dem Makro-Recorder wenn Du das schützen/aufheben damit aufzeichnest.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

danke für den Hinweis. Auf die Idee wäre ich nie gekommen. Werde mich dann mal an die Änderung von 24 Makros begeben. :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

.Protect und .Unprotect • o.w.T.
Das sind die beide Worksheet-Methoden, die Du brauchst.

danke für den Hinweis. Auf die Idee wäre ich nie gekommen.
Werde mich dann mal an die Änderung von 24 Makros begeben. :smile:

Hallo Stefan,
ich weiß nicht, wie fit Du mit Makros bist. Deshalb empfehle ich vorsichtshalber, 2 Makros zu erstellen, jeweils fürs Aufheben und Einschalten des Blattschutzes. Dann jeweils nur deren Aufruf einbauen.
Falls Du den Blattschutz mit Kennwort versehen hast, hat das den Vorteil bei eventuellen Änderungen nur an einer Stelle ändern zu müssen.
Viel Erfolg!

Viele Grüße, Armin

Gibt es eine Möglichkeit, dass Zellen vor Überschreiben
geschützt werden und trotzdem die Makros laufen??

Hebe zu Beginn deines Makros den Blattschutz auf und setze ihn
anschlissend wieder.
Den Code dazu bekommst Du mit dem Makro-Recorder wenn Du das
schützen/aufheben damit aufzeichnest.

danke für den Hinweis. Auf die Idee wäre ich nie gekommen.
Werde mich dann mal an die Änderung von 24 Makros begeben. :smile:

Hi Stefan,

sowas macht man natürlich mit einem Makro :smile: Und um gleich Armins guten Vorschlag zu dem von Thomas dazuzufügen, probiers mal so, Klicke mit rechts auf das Makromodul, und exportiere es nach z.B. C:\Test, dann lösche es.

Dann, in einem neuen Modul, lase mal diesen Code laufen:

Sub tt()
Dim Satz As String
Close
Open "C:\test\Modul1.bas" For Input As #1
Open "c:\test\mdlMeinModul.bas" For Output As #2
While Not EOF(1)
 Line Input #1, Satz
 Select Case Left(Satz, 4)
 Case "Sub "
 Print #2, Satz
 Print #2, "Call SchutzAus"
 Case "End "
 Print #2, "Call SchutzEin"
 Print #2, Satz
 Case Else
 Print #2, Satz
 End Select
Wend
Close
End Sub

Ggfs. noch eine If-Überprüfung einbauen, wenn in einigen Prozeduren der Schutz nicht angetestet werden soll.
Aber diese Prozeduren könnte man ja auch in anderes Modul packen o.ä.

Dann das Modul „c:\test\mdlMeinModul.bas“ importieren.
Ungetestet.

Gruß Reinhard