Clever-Excel-Forum

Normale Version: Enable Selection - Zellen Sperre
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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 !!!!!!!
Hi,

hier musst du das Häkchen wegnehmen.

[
Bild bitte so als Datei hochladen: Klick mich!
]
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.
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
wenn ich den neuen code durch den alten ersetze hat das leider keine auswirkung :(
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
Hi,

(10.05.2016, 18: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?
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
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ß
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
Seiten: 1 2