Enable Selection - Zellen Sperre
#1
Servus zusammen,

ich habe mehrere Registerkarten und auf denen sind immer die selbe zellen gesperrt und sollen auch nicht angewählt werden dürfen.
Anfangs hat alles perfekt funktioniert, nach ein paar Wochen konnte ich aber die gesperrten Zellen zwar nicht editieren aber wieder anwählen.

Hab mir damals mehrere Codes geben lassen, damit ich zum einen nur das betreffenden Blatt oder eben die Komplette Mappe auf einmal sperren und entsperren kann.

jetzt zu meiner Frage ... kann hier der Fehler begraben sein bzw kann man in den Code evtl. nachträglich etwas einbauen damit ich die gesperrten Zellen nicht anwählen kann wenn ich diese zuvor mit dem Makro erneut gesperrt habe.

Hier die alten Codes :

Sub BlattschutzAktivesBlattEinschalten()

      ActiveSheet.Protect

End Sub

Sub BlattschutzAusschalten()

    ActiveSheet.Unprotect

End Sub


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

End Sub

Sub alle_Blätter_Schützen()
   Dim wksBlatt As Worksheet
   
   For Each wksBlatt In ThisWorkbook.Worksheets
      If wksBlatt.Name <> "Index" Then wksBlatt.Protect
   Next wksBlatt

End Sub

------------------------------------------------------------------------

Hier ist noch ein Code der damit eigentlich nichts zu tun haben dürfte aber zur Sicherheit post ich den trozdem :

Sub Index()
Dim intTab As Integer
Dim tbl As Worksheet
Dim intZeile As Integer
 
Set tbl = Worksheets.Add(Before:=Worksheets(1))
intZeile = 1
For intTab = 2 To ActiveWorkbook.Worksheets.Count
 tbl.Cells(intZeile, 1).Value = Worksheets(intTab).Name
 tbl.Cells(intZeile, 1).Hyperlinks.Add _
 Anchor:=Cells(intZeile, 1), Address:="", SubAddress:= _
        Worksheets(intTab).Name & "!A1", _
        ScreenTip:="Klicken Sie auf den Hyperlink", _
        TextToDisplay:=Worksheets(intTab).Name
 intZeile = intZeile + 1
Next intTab
End Sub



Hoffe ihr habt eine lösung, ist langsam echt nervig das ganze !!!!!!!
Top
#2
Hi,

hier musst du das Häkchen wegnehmen.

[
Bild bitte so als Datei hochladen: Klick mich!
]
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
eh ja ... hätte ich vielleicht dazu schreiben sollen ;;)

das hab ich schon bei ca 50 Registerkarten einzlen gemacht ... und nicht nur einmal ::(

aber der fehler taucht sobald die mappe geschlossen und neu geöffnet wird leider wieder auf.

ich hab keine ahnung warum oder wieso ...

darum wollte ich das direkt in den code einbauen sodass ich endl meine ruhe habe.
Top
#4
Hi,

Zitat:darum wollte ich das direkt in den code einbauen sodass ich endl meine ruhe habe.

ich habe mal den Vorgang aufgezeichnet.


Zitat:Sub BlattschutzGesperrteZellen()
'
' BlattschutzGesperrteZellen Makro
'

'
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
wenn ich den neuen code durch den alten ersetze hat das leider keine auswirkung :(
Top
#6
Hi,

probiere es mal so


Zitat:Option Explicit

Sub BlattschutzAktivesBlattEinschalten()
    With ActiveSheet
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlUnlockedCells
        .Protect
    End With

End Sub
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • lion7123
Top
#7
Hi,

(10.05.2016, 19:03)lion7123 schrieb: wenn ich den neuen code durch den alten ersetze hat das leider keine auswirkung :(

du solltest ja auch den alten durch den neuen ersetzen und nicht anders rum, oder?
Top
#8
Hallo Günter,

das sollte wohl vor dem Schützen passieren.

Code:
Sub BlattschutzAktivesBlattEinschalten()
   With ActiveSheet
       .EnableSelection = xlUnlockedCells
       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   End With

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • lion7123
Top
#9
Guten morgen ::)

also .. es funktionieren beide codes und ist auf jeden fall schonmal viel einfacher falls der fehler nochmal auftreten sollte.
Ich sag schonmal Danke an euch zwei für eure Mühe!!!!

Aber ist es auch möglich das ihr den code hier einbaut ?

------------------------

Sub alle_Blätter_Schützen()
   Dim wksBlatt As Worksheet
   
   For Each wksBlatt In ThisWorkbook.Worksheets
      If wksBlatt.Name <> "Index" Then wksBlatt.Protect
   Next wksBlatt

End Sub

-------------------------

dann wäre ich immer auf der sicheren Seite da ich die einzelblatt sperre weniger oft nutze wie diese.

Gruß
Top
#10
Hallo,

versuchs mal so

Code:
Sub alle_Blätter_Schützen()
  Dim wksBlatt As Worksheet
 
  For Each wksBlatt In ThisWorkbook.Worksheets
     If wksBlatt.Name <> "Index" Then
         wksBlatt.EnableSelection = xlUnlockedCells
         wksBlatt.Protect
     End If
  Next wksBlatt

End Sub
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • lion7123
Top


Gehe zu:


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