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

Blattschutz für mehrere Tabellenblätter aufheben und wieder

Forumthread: Blattschutz für mehrere Tabellenblätter aufheben und wieder

Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:04:47
Siegfried Pütz
Hallo an alle Spezialisten hier im Forum.
Wer kann mir zu folgender Erklärung eine Lösung geben:
Ich habe eine Exceldatei mit 32 Tabellenblätter. Tabellenblatt 1 zeigt mir als Übersicht diverse Summen aus den entsprechenden, anderen Tabellenblättern. Diese habe ich mit Blattschutz versehen. Manchmal muss ich darin befindliche Formeln ändern.
Mein bestreben ist es, in der Übersicht zwei Buttons zu erstellen "Blattschutz aufheben" bzw. "Blattschutz anwenden", für Tabelle 1 - Tabelle 31.
Habe hier schon rumgesucht, leider nicht das Passende gefunden oder nicht kapiert :-(.
Grüße an Alle
SiggiP
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:10:13
Onur
Wie heissen die Blätter genau (ALLE) ?
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:19:06
Siegfried Pütz
Hallo Onur,
"Übersicht" danach - Tabelle1, Tabelle2, usw. bis Tabelle31
Gruß
SiggiP
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:24:25
Siegfried Pütz
Habe ein Makro aufgezeichnet für aufheben und schützen. Funktioniert nur auf der Übersicht :-(
Sub Blattschutz_aufheben()

'
' Blattschutz_aufheben Makro
'

'
ActiveSheet.Unprotect
End Sub
Sub Blatt_schützen()
'
' Blatt_schützen Makro
'

'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:30:05
Onur
Auf "Übersicht" ein Active-X-Button plazieren und mit diesem Makro versehen:
Private Sub CommandButton1_Click()

Dim sh
For Each sh In ThisWorkbook.Sheets
sh.Unprotect "1234"
If sh.Name > "Übersicht" Then
sh.Protect "1234"
End If
Next
End Sub

Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:34:48
toblee
Hallo SiggiP,
hier noch eine Variante. Also 1. beide Codes in ein Modul packen, siehe unten. Dann 2. in deiner Tabelle "Übersicht" zwei Formen erstellen, z.B. Rechtecke und entsprechend beschriften/designen. Dann Rechtsklick auf eine Form und das entsprechende "Makro zufügen".

'Alle Blätter mit Blattschutz versehen, bis auf "Übersicht"
Sub protect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Protect "Passwort"
End Select
Next ws
End Sub

'Blattschutz auf allen Blättern wieder aufheben, bis auf "Übersicht"
Sub unprotect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Unprotect "Passwort"
End Select
Next ws
End Sub
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 21:50:20
Siegfried Pütz
Hallo toblee und Onur,
vielen Dank, wie gehofft wurde mir wieder mal geholfen.
Grüße an Euch und Allen....
SiggiP
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:06:08
Siegfried Pütz
Hallo toblee,
das klappt super. Woran kann es liegen: wenn ich den Blattschutz über den Button aufhebe springt es immer zu Tabelle 30.
Habe es jetzt in zwei Dateien von 12 Dateien (jeweils für einen Monat) eingebunden, das Ergebnis immer zu Tabelle 30....???
Gruß,
SiggiP
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:28:53
toblee
Füge zwischen 'next ws' und 'end sub' noch folgendes hinzu: Worksheets("Übersicht").Range("A1").Select
Siehe hier:

Sub unprotect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Unprotect "Passwort"
End Select
Next ws
Worksheets("Übersicht").Range("A1").Select
End Sub

Damit springt er am Ende wieder auf das Blatt "Übersicht" in Zelle A1 zurück.
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:34:34
Onur
Wozu genau eigentlich das
Application.ScreenUpdating = False 

und das
Case "Übersicht": 

???
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:46:15
Siegfried Pütz
Hi toblee,
wenn ich das Eintrage dann kommt Debuggen????
Zeigt mir dann gelb hinterlegt die Worksheets("Übersicht").Range("A1").Select
Gruß,
SiggiP
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:53:58
toblee
@Onur
Application.ScreenUpdating = False : verhindert, dass die einzelnen Tabellen während der Prozedur angezeigt werden oder das Excel flackert, quasi ein Smooth ;) Sinnvoll wäre es natürlich diesen dann mit einem True am Ende wieder aufzuheben, da hast du Recht.
Case "Übersicht": : verhindert, dass das Tabellenblatt "Übersicht" auch Blattgeschützt wird, so wie gewollt, zumindest in dieser case Codevariante ;)

@SiggiP
Ok kein Problem, dann nutze stattdessen diesen: Worksheets("Übersicht").Activate
Beide aktualisierten Codes, siehe hier:

'Alle Blätter bis auf "Übersicht" schützen
Sub Protect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Protect "Passwort"
End Select
Next ws
Worksheets("Übersicht").Activate
Application.ScreenUpdating = True
End Sub

'Blattschutz für alle Blätter bis auf "Übersicht" wieder aufheben
Sub unprotect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Unprotect "Passwort"
End Select
Next ws
Worksheets("Übersicht").Activate
Application.ScreenUpdating = True
End Sub
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 23:01:43
Onur
Application.ScreenUpdating = False

ist Quatsch, da die einzelnen Blätter ja beim Blattschutz setzen/aufheben NICHT angewählt werden.
Und DAS reicht völlig:
ws.Protect "Passwort"

Select Case ws.Name
Case "Übersicht":ws.UnProtect "Passwort"
End Select

Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 23:06:06
Siegfried Pütz
Hallöchen,
habe folgende Codes eingebunden:
'Blattschutz auf allen Blättern wieder aufheben, bis auf "Übersicht"

Sub unprotect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Unprotect "Passwort"
End Select
Next ws
Worksheets("Tabelle1").Activate
Range("b33").Select
End Sub


'Alle Blätter mit Blattschutz versehen, bis auf "Übersicht"

Sub protect_all()
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Übersicht":
Case Else: ws.Protect "Passwort"
End Select
Next ws
Worksheets("Tabelle1").Activate
Range("b33").Select
End Sub


So bin ich da, wo ich eventuelle Formeln ändern muss.
Ist gut so....Danke
Gruß,
SiggiP
Anzeige
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:47:53
Onur
Nimm das hier:
Worksheets("Übersicht").Activate

Range("A1").Select
AW: Blattschutz für mehrere Tabellenblätter aufheben und wieder
07.01.2025 22:59:14
Siegfried Pütz
Onur,
super, funktioniert. Danke....auch an toblee.
Grüße Euch.
SiggiP

Forumthreads zu verwandten Themen

Anzeige
Anzeige