Hallo Mario,
Post by Mariohi hat jemand eine Lösung für obriges Problem
Umbenennen eines Tabellenblattes sperren
jedes Arbeitsblatt hat neben einem Blattnamen, der auf den Registerreitern
zu sehen ist auch einen Codenamen.
Im Eigenschaftenfenster des Blattes findest du zwei mal die Name-Eigenschaft:
(Name) = Codename
Name= Blattname
Für meine Prozeduren habe ich den Codenamen des zu schützenden Blattes in 'Secret' geändert.
Füge folgende Deklarationen in ein Standardmodul deiner Arbeitsmappe ein:
Public wks As Worksheet
Public gstrTabName As String
und in das Codemodul DieseArbeitsmappe:
Private Sub Workbook_Open()
' hier Codename der Tabelle eintragen
Set wks = ThisWorkbook.Worksheets([Secret].Name)
gstrTabName = wks.Name
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Application.EnableEvents = False
wks.Name = gstrTabName
Application.EnableEvents = True
End Sub
Beim Öffnen der Arbeitsmappe wird der Blattname in einer Variablen gespeichert.
Bei jeder Neuberechnung, also auch beim ändern des Blattnamens, wird
der gespeicherte Blattname neu geschrieben.
Man könnte zwar vorher noch prüfen, ob er sich überhaupt geändert hat,
aber das macht den Code nur langsamer und führt zum gleichen Ergebnis.
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#