Hi,
ich habe folgenden Code für die ganze Arbeitsmappe:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Variable deklarieren
Dim Zelle As Range
'For/Each-Schleife zum Abfragen der Zellen
For Each Zelle In Target.Cells
'Wenn die durch die Schleife angesprochenen Zelle
'eine Formel enthält und die Variable "Zelleschutz_aus"
'gleich dem Wert 0, dann...
If Zelle.HasFormula And Zelleschutz_aus = 0 Then
'...Blattschutz aktivieren und...
ActiveSheet.Protect "GHMexcel1!?"
'...Prozedur beenden,...
Exit Sub
'...ansonsten...
Else
'Blattschutz aufheben
ActiveSheet.Unprotect "GHMexcel1!?"
'Abfrage Ende
End If
'Nächsten Schleifendurchlauf starten
Next Zelle
'Variable "Zelleschutz_aus" auf den Wert 0 setzen
Zelleschutz_aus = 0
End Sub
----------------------
Der sperrt mir und entsperrt mir das Blatt je nachdem welche Zelle der Benutzer anwählt.
Problem: ich kann keine Zeilen mehr kopieren und einfügen, denn bei Auswahl einer Zeile mit einer Formel
sperrt er diese. Auch Kopieren und einfügen unprotect und protect über Makro hilft nicht, denn der obige Code verhindert
dies, da die ganze Zeile immer ausgewählt bleibt.
Private Sub Einfügen()
With ActiveSheet
.Unprotect "GHMexcel1!?"
Selection.Insert Shift:=xlDown
.Protect "GHMexcel1!?"
End With
End Sub
Danke majo
|