Seite 1 von 1
Alle Tabellenblätter schützen
Verfasst: Mi, 22.02.2006 13:58
von mike6
Hallo,
mit dem Makro:
++++++++++++++++++++++++++++++++++++++
Sub Schutz_Tabellenblatt
Dim objDatei As Object
Dim objBlaetter As Object
Dim objBlatt As Object
objDatei = ThisComponent
objBlaetter = objDatei.Sheets
objBlatt = objDatei.Sheets(0)
If objBlatt.isProtected() = True Then
objBlatt.unprotect("")
MsgBox "Schutz auf"
Else
objBlatt.protect("")
MsgBox "Schutz zu"
End If
End Sub
++++++++++++++++++++++++++++
schütze ich ein Tabellenblatt bzw. heben den Schutz auf.
Wie ändere ich das Makro ab, damit (alle) Tabellenblätter geschützt sind.
mfg
mike6
Verfasst: Mi, 22.02.2006 14:07
von ykcim
In dem Du eine Schleife über alle Tabellenblätter machst und jedes einzeln schützt.
Code: Alles auswählen
myDoc = thisComponent
Anzahl=myDoc.Sheets.count
For i=0 to Anzahl-1
objBlatt = myDoc.Sheets(i)
If objBlatt.isProtected() = True Then
objBlatt.unprotect("")
MsgBox "Schutz auf"
Else
objBlatt.protect("")
MsgBox "Schutz zu"
End If
Next i
mfg
Michael
Verfasst: Mi, 22.02.2006 15:50
von mike6
Hallo Michael,
danke für die Erläuterung.
mfg
mike6
Verfasst: Do, 23.02.2006 07:02
von mike6
Hallo,
das nachfolgende makro schützt alle Tabellenblätter.
++++++++++++++++++++++++++++++++++++
Sub Schutz_Tabellenblatt
Dim objDatei As Object
Dim objBlaetter As Object
Dim objBlatt As Object
myDoc = thisComponent
Anzahl=myDoc.Sheets.count
For i=0 to Anzahl-1
objBlatt = myDoc.Sheets(i)
If objBlatt.isProtected() = True Then
objBlatt.unprotect("")
MsgBox "Schutz auf"
Else
objBlatt.protect("")
MsgBox "Schutz zu"
End If
Next i
End Sub
++++++++++++++++++++++++++++++++++++
Leider hat es noch einen kleinen Fehler.
Wenn ich 40 Tabellenblätter damit schütze, kommt 40 x
die MsgBox "Schutz zu ".
Wie kann ich das noch abstellen?
mfg
mike6
Verfasst: Do, 23.02.2006 07:51
von Stephan
Wir kennen Deine Anforderungen ja garnicht. Es könnte sein das bestimmte Einzelblätter unter bestimmten Bedingungen gemeldet werden sollen.
Ohne Rücksicht darauf brauchst Du doch lediglich die Anzeige nach der Schleife erfolgen zu lassen. Meinethalben so:
Code: Alles auswählen
Sub Schutz_Tabellenblatt
Dim objDatei As Object
Dim objBlaetter As Object
Dim objBlatt As Object
myDoc = thisComponent
Anzahl=myDoc.Sheets.count
For i=0 to Anzahl-1
objBlatt = myDoc.Sheets(i)
If objBlatt.isProtected() = True Then
objBlatt.unprotect("")
zustand = "auf"
Else
objBlatt.protect("")
zustand = "zu"
End If
Next i
MsgBox "Schutz " & zustand
End Sub
keine Ahnung ob das für Dich zweckmäßig ist.
Gruß
Stephan
Verfasst: Do, 23.02.2006 09:24
von mike6
Hallo,
Danke,

das wars.
mfg
mike6