Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Blattschutz Makro
#1
Servus mal wieder Smile

hat von euch jemand ein Makro das man per Tastendruck aktivieren kann das alle Arbeitsblätter sperrt bis auf die Registerkarte "Index"
genauso auch eines zum entsperren.

was sogar besser wäre wenn das makro nur das aktuelle Arbeitsblatt sperrt und entsperrt.

ich hab im moment schon eines am laufen, wenn jedoch der blattschutz aktiv ist kann die index datei nicht mehr automatisch aktualisiert werden.

hoffe ihr habts ne idee, weil dann bin ich endlich durch wenn das problem gelöst ist Smile

Gruß und Danke schonmal Smile
to top
#2
Hallo,

zum Sperren aller Arbeitsblätter (außer Index)

Code:
Sub prcLion()
   Dim wksBlatt As Worksheet
  
   For Each wksBlatt In ThisWorkbook.Worksheets
      If wksBlatt.Name <> "Index" Then wksBlatt.Protect
   Next wksBlatt

End Sub
Gruß Stefan
Win 7 / Office 2007
[-] Folgende(r) 1 Benutzer sagt Danke an Steffl für diesen Beitrag:
lion7123
to top
#3
Hallo,

Du kannst auch alle Blätter schützen und per VBA trotzdem Zellen bearbeiten ohne den Schutz aufzuhen.

Dazu muss nur eine Kleinigkeit in Stefans Code ergänzt werden:

Code:
Sub alle_Blätter_schützen()
   Dim wksBlatt As Worksheet
  
   For Each wksBlatt In ThisWorkbook.Worksheets
      wksBlatt.Protect UserInterfaceOnly:=True
   Next wksBlatt

End Sub

Und so aufheben:

Code:
Sub alle_Blätter_Schutz_aufheben()
   Dim wksBlatt As Worksheet
  
   For Each wksBlatt In ThisWorkbook.Worksheets
      wksBlatt.Unprotect
   Next wksBlatt

End Sub
Gruß Atilla

Excel 2007
to top
#4
(22.01.2015, 16:21)lion7123 schrieb: ...
was sogar besser wäre wenn das makro nur das aktuelle Arbeitsblatt sperrt und entsperrt.
...

Hi,

hiermit schaltest Du den Blattschutz nur für das aktive Blatt ein.
Code:
Sub BlattschutzAktivesBlattEinschalten()

      ActiveSheet.Protect

End Sub

Aufheben kannst Du den Blattschutz so

Code:
Sub BlattschutzAusschalten()

    ActiveSheet.Unprotect

End Sub

Über eine If... Then-Anweisung kannst Du auch erst prüfen, ob ein Blattschutz gesetzt ist,
und ihn dann ggf. ein- bzw. ausschalten.

So z.B.

Code:
Sub BlattschutzPrüfen()

If ActiveSheet.Protect = True Then
     ActiveSheet.Unprotect
Else
    ActiveSheet.Protect
End If

End Sub

Meiner Meinung nach solltest Du aber den Zugriff auf ungeschützte Zellen beschränken, andernfalls macht
die Aktion wenig Sinn.

Code:
Sub BlattschutzPrüfen2()

If ActiveSheet.Protect = True Then
     ActiveSheet.Unprotect
Else
    ActiveSheet.Protect
    ActiveSheet.EnableSelection = xlUnlockedCells
End If

End Sub

Gruß
Max
[-] Folgende(r) 1 Benutzer sagt Danke an Max für diesen Beitrag:
lion7123
to top
#5
Hi Max,

(22.01.2015, 22:40)Max schrieb: Über eine If... Then-Anweisung kannst Du auch erst prüfen, ob ein Blattschutz gesetzt ist, und ihn dann ggf. ein- bzw. ausschalten.

bringt das etwas? Was stört es, wenn ein ungeschütztes Blatt über Makro nochmal entschützt wird? Im anderen Fall, wenn es geschützt ist, würde es durch Dein Makro ja auch wieder geschützt werden, obwohl es das schon ist.

[später] der dritte Satz ("Im anderen Fall...") ist Quatsch, bitte schnell vergessen!
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#6
Hallo Max,

(22.01.2015, 22:40)Max schrieb: Meiner Meinung nach solltest Du aber den Zugriff auf ungeschützte Zellen beschränken, andernfalls macht
die Aktion wenig Sinn.

Code:
Sub BlattschutzPrüfen2()

If ActiveSheet.Protect = True Then
     ActiveSheet.Unprotect
Else
    ActiveSheet.Protect
    ActiveSheet.EnableSelection = xlUnlockedCells
End If

End Sub

Müsste im Else-Teil nicht zuerst die EnableSelection-Eigenschaft und danach die Protect-Methode stehen?
Gruß Stefan
Win 7 / Office 2007
to top
#7
(23.01.2015, 17:09)Rabe schrieb: Hi Max,

...

bringt das etwas? ...

Hallo Ralf,

na ja, man braucht halt nur ein Makro, um den Schutz ein- bzw. auszuschalten.

Unabhängig davon habe ich gemerkt, dass mir ein Fehler in meinem Makro unterlaufen ist.
Wenn, wie oben, der Blattschutz nur auf ungeschützte Zellen beschränkt wird, muss bei der
Prüfung auch dieser Zustand abgefragt werden. Andernfalls arbeitet das Makro nicht korrekt.

Code:
Sub BlattschutzPrüfen2()

If ActiveSheet.ProtectContents = True Then
     ActiveSheet.Unprotect
Else
    ActiveSheet.Protect
    ActiveSheet.EnableSelection = xlUnlockedCells
End If

End Sub


.xlsm   Blattschutz.xlsm (Größe: 14,67 KB / Downloads: 3)
Die Zellen A1 und A2 in Tabelle1 sind ungesperrt.

@Stefan
Von der Logik her gebe ich Dir recht, es funzt aber auch so.
Ich habe ein wenig recherchiert, konnte aber keine Erklärung finden.
Vielleicht kennt einer der Mitlesenden die Erklärung.

Grundsätzlich hatte ich mich lediglich eingeklingt weil der TS schrieb, er würde den Blattschutz gerne
nur für das aktive Blatt einschalten wollen.

Gruß
Max

OT-Edit:
Wie erstellt man denn ein Multizitat?
Ich will also in einer Antwort auf mehrere Beiträge antworten.
to top
#8
Hi Max,

(24.01.2015, 09:37)Max schrieb: OT-Edit:
Wie erstellt man denn ein Multizitat?
Ich will also in einer Antwort auf mehrere Beiträge antworten.

rechts vom "Zitieren"-Button gibt es einen kleinen mit einem grünen +, damit kannst Du mehrere Beiträge auswählen. Der Knopf wird dann bei jedem Beitrag rot mit - und wenn Du dann alle hast, dann auf Antworten drücken.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#9
leuts sry das ich so lang nix von mir hörn hab lassen Smile

die codes funktionieren alle einwandfrei bis auf das eine von atalia das alle schützt und vba nich behindern soll...

bei mir klappt das zwar nich aber ich hab nun was ich wollte und sag vielen vielen dank Smile

Gruß
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Blattschutz schützen (ohne PW) Hobbes95 3 71 18.11.2016, 15:50
Letzter Beitrag: RPP63
  Blattschutz aufheben bei bestimmten User FaDos 3 134 20.10.2016, 22:15
Letzter Beitrag: AlterDresdner
  Blattschutz ulle 1 90 11.10.2016, 10:34
Letzter Beitrag: Gast 123
  Blattschutz Fliege1711 12 651 06.08.2016, 07:25
Letzter Beitrag: Storax
  Gliederung, Filter und Spalten bearbeiten bei Blattschutz Veit 16 1.253 13.05.2016, 06:06
Letzter Beitrag: schauan
  Makro für Blattschutz Aydin77 4 705 18.04.2016, 23:23
Letzter Beitrag: Aydin77
  Messagebox wenn Blattschutz aufgehoben wird herbert0803 7 1.463 20.10.2015, 09:29
Letzter Beitrag: Rabe
  In Tabelle mit Blattschutz Zeilen einfügen flo 5 1.660 07.08.2015, 12:11
Letzter Beitrag: Rabe
  Lufzeitfehler nach Blattschutz cavok 2 728 21.06.2015, 11:26
Letzter Beitrag: cavok
  VBA Detektiv trotz Blattschutz Theo 0 541 21.05.2015, 16:35
Letzter Beitrag: Theo

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste