437 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (335 Punkte)
Hallo liebe Excelianer,

ich habe eine xlsm Datei mit 194 Blättern. NACH dem Blatt "Base" sollen alle weiteren Blätter geschützt werden. Leider ist das Blatt "Base" nicht auf einer festen Position (z. B. Blatt Nr. 9) da noch weitere Blätter sich VOR dem Blatt "Base" befinden werden. Deshalb müsste zuerst die Position vom Blatt "Base" bestimmt werden und ab dann alle weiteren Blätter geschützt werden.

Z. B. ist Blatt Base das 12 Blatt. Also sind alle Blätter von Blatt 13 bis Blatt 194 zu schützen.

Hier ist der Code, den ich bereits geschrieben habe.

Sub ProtectSheets()

Dim wks As Worksheet
Dim lngworksheets As Long
Dim i As Long

lngworksheets = ThisWorkbook.Sheets.Count

For i = ThisWorkbook.Worksheets("Base").Index + 1 To lngworksheets
wks.Protect "hawaii"
wks.EnableSelection = xlUnlockedCells
Next i

End Sub

Vielen Dank für Eure Hilfe.

Gruss

Peter

7 Antworten

0 Punkte
Beantwortet von
hi Peter !

Wie gewünscht!

Gruß Nighty

Sub WksSchutz()
Dim WksIndex As Integer
For WksIndex = 1 To Worksheets.Count
If Worksheets(WksIndex).Name <> "Base" Then
Worksheets(WksIndex).Protect "DeinPasswort"
End If
Next WksIndex
End Sub


P.S.
Gewöhne die eindeutig Variablennamen an!
0 Punkte
Beantwortet von
hi Peter :-)

Um anderen keinen Einblick in die erstellten Codes zu gewähren
Schütze im Vbed das Projekt mit einem Passwort

Gruss Nighty
0 Punkte
Beantwortet von
hi Peter ^^

.EnableSelection = xlUnlockedCells

Falls die Eigenschaften gebraucht wird und du den Code nicht
eventuell so übernommen hast,dann füge Sie noch nach Protect hinzu und beachte die hinweise von MS!

Zitat MS
Diese Eigenschaft ist nur wirksam, wenn das Arbeitsblatt geschützt ist: xlNoSelectionxlNoSelection verhindert jegliche Markierung auf dem Blatt, xlUnlockedCellsxlUnlockedCells gestattet nur die Markierung der Zellen, deren Locked-Eigenschaft FalseFalse ist, und xlNoRestrictionsxlNoRestrictions erlaubt die Markierung einer beliebigen Zelle.

Gruß Nighty
0 Punkte
Beantwortet von
hi Peter ^^

Der obigen Schleife angepasst!
Einzufügen nach Protect!

Worksheets(WksIndex).EnableSelection = xlUnlockedCells


Gruß Nighty
0 Punkte
Beantwortet von Mitglied (335 Punkte)
Hallo Nighty,

vielen Dank für die schnelle Hilfe. Das Makro funktioniert aber es schützt alle Blätter - auch die VOR dem Platt "BASE". Es sollen aber nur alle Blätter NACH der Tabelle geschützt werden. Hättest Du hier vielleicht eine Lösung?

Danke Dir und Gute Nacht.

Gruss

Peter
0 Punkte
Beantwortet von
hi Peter ^^

Groß/Klein Schreibung beachten :-)

Im Code "Base" .-) ... Bei deiner Tabelle ?

Gruß Nighty
0 Punkte
Beantwortet von
hi Peter ^^

Dann so :-)

Gruß Nighty

Sub WksSchutz()
Dim WksIndex As Integer
Dim Schalter As Boolean
For WksIndex = 1 To Worksheets.Count
If Schalter = True Then
Worksheets(WksIndex).Protect "DeinPasswort"
End If
If Worksheets(WksIndex).Name = "Base" Then Schalter = True
Next WksIndex
End Sub
...