Blattschutz und Schreibschutz

Schreibschutz per Makro

Die Auf­ga­be

Mit ein­fachen Möglichkeit­en soll ein ein­zel­nes Arbeits­blatt, die kom­plette Map­pe oder ein­zel­ne Blät­ter ein­er Map­pe ge­gen verse­hentlich­es Über­schreiben bzw. un­be­fug­te Änderun­gen ge­schützt wer­den. Da es ja we­nig sin­nvoll ist, als Pass­wort Geburt­stage oder Na­men zu ver­wen­den, ist in den fol­gen­den Code-Mus­tern ein et­was kryp­tis­ches Pass­wort einge­set­zt wor­den. Trotz des Schut­zes wird Ex­cel natür­lich die betrof­fe­nen Zel­len im­mer dann än­dern, wenn eine Berech­nung die­ses erforder­lich macht. Nur der Be­nut­zer kann dort kei­ne Änderun­gen per Hand vor­neh­men.

Zu­ge­ge­ben, wer et­was bewan­dert­er ist in Ex­cel und weiß, dass er mit der Tas­tenkom­bi­na­tion AltF11 in den VBA-Edi­tor ge­langt kann. Dort ist dann in den meis­ten Fäl­len das Pass­wort leicht auszule­sen, so­lan­ge nicht beson­dere Schutz­maß­nah­men getrof­fen wor­den sind. Aber für „Otto Nor­maluser” soll­te be­schrie­be­ne Weg des Schut­zes rei­chen. Und natür­lich darf es auch ein lee­res Pass­wort sein, wenn es nur dar­um geht, dass ir­gend­wel­che Zel­len nicht verse­hentlich über­schrieben wer­den.

Der kom­plette Schutz ei­nes Blat­tes ist meis­tens nicht wün­schenswert bzw. sin­nvoll. Ein­zelne Fel­der oder Bere­iche sind viel­fach für die Ein­ga­be durch ei­nen Be­nut­zer ge­dacht. Die­se Zel­len müs­sen Sie im Vor­wege über das Zahlen­for­mat beson­ders kennze­ich­nen. Mehr dazu find­en Sie hier im Blog.

▲ nach oben …

Der Code

Hier nun in ei­nem Mod­ul den Code, welch­er nach dem Öff­nen der Ar­beits­map­pe (der *.xls*-Da­tei) automa­tisch die ge­sam­te Map­pe schützt so­wie zwei weit­ere Rou­ti­nen, wo jew­eils (nur) in dem Arbeits­blatt mit dem Na­men Ta­bel­le1 der Schutz geset­zt und wie­der aufge­hoben wird. Änderun­gen kön­nen nach dem ein­schal­ten des Schut­zes nur noch in den Fel­dern vorgenom­men wer­den, die durch die For­ma­tie­rung (Zahlen­for­mat) expliz­it auf „nicht ge­schützt” geset­zt wor­den sind:

Option Explicit

Sub Workbook_Open()
'Automatischer Schutz aller Arbeitsblätter der Mappe
   Dim Ws As Worksheet
   Set Ws = Activeworksheet
   For Each Ws In ThisWorkbook.Worksheets
      Ws.Protect Password:="<Üö.,#'w|F254:;", 
   Next Ws 
   Set Ws = Nothing 
End Sub

Sub SchreibSchutz_An 
   Sheets("Tabelle1").Protect Password:="<Üö.,#'w|F254:;"
End Sub 

Sub SchreibSchutz_Aus
   Sheets("Tabelle1").Unprotect Password:="<Üö.,#'w|F254:;"
End Sub

▲ nach oben …

Code4­Im­port

Den oben ste­hen­den Code so­wie ver­schiedene an­de­re Vari­anten, wo bes­timmte Blät­ter vom Schutz aus­geschlossen sind, bekom­men Sie in die­ser Da­tei. Die Na­men der Rou­ti­nen sind (hof­fentlich) selb­st erk­lärend, zusät­zlich ist noch eine Kom­men­tarzeile mit Hin­weisen einge­fügt.

Es ver­ste­ht sich von al­lei­ne, dass Sie das jew­eilige Pass­wort in bei­den Mod­ulen Ih­ren Wün­schen ent­spre­chend an­pas­sen müs­sen und dass es (natür­lich) iden­tisch sein muss.

[NachOben­Let­zte Verweis=„T&T: Blattschutz VBA”]
Dieser Beitrag wurde unter Mit VBA/Makro, Tabelle und Zelle, Tipps und Tricks abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.