1.7k Aufrufe
Gefragt in Tabellenkalkulation von little-key Mitglied (333 Punkte)
Hallo an alle,

habe eine Tabelle mit 54 Arbeitsblättern.
Diese heißen KW1, KW2 ... bis KW52 und AR, AW.

Um alle Blätter gleichzeitig einen Blattschutz zu aktivieren, habe ich folgenden Code:

' Blattschutz für alle Blätter einschalten
Sub Blattschutz_alleBlätter_ein()
For Each WsTabelle In Sheets
WsTabelle.Protect ("sambuco")
Next WsTabelle
End Sub

der auch funktioniert.

Wie kann ich diesen Blattschutz nur auf die Blätter KW1 bis KW52 beschränken, da die Blätter AR+AW ein anderes Passwort erhalten sollen?

Danke schonmal.

Gruß Mario

5 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Mario,

If ucase( Left(wstabelle.name,2))="KW" Then WsTabelle.Protect ("sambuco")

Gruß Hajo
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Hajo,

Danke, aber irgendetwas mache ich falsch.
Bekomme diese Meldung:

Objektvariable oder With-Blockvoriable nicht festgelegt.

Kannst Du das mal in meinen vorhandenen Code einfügen?

Bin auch noch nicht so firm in VBA.
Mario
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo mario,

ich bekomme keinen Fehler.

Option Explicit

' Blattschutz für alle Blätter einschalten
Sub Blattschutz_alleBlätter_ein()
Dim WsTabelle As Worksheet
For Each WsTabelle In Sheets
If UCase(Left(WsTabelle.Name, 2)) = "KW" Then WsTabelle.Protect ("sambuco")
Next WsTabelle
End Sub


Gruß Hajo
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Hajo,

wiedermal besten Dank dafür. Echt Klasse.

Jetzt auf einmal funktionierts. Hatte es eigentlich genauso gemacht.
Aber warscheinlich nur "eigentlich".

Alles Gute
Mario
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Mario,

ich habe die Variable Definiert., ist notwendig bei Option Explicit.

Gruß Hajo
...