Zellschutz per Makro ändern
Verfasst: Sa, 19.04.2008 15:55
Hallo Freaks,
hat jemand eine Idee, wie man per Makro den Tabellenschutz aufhebt? Wenn ich in einer geschützten Tabelle eine geschützte Zelle in eine ungeschützte umwandeln will, fordert CALC das Passwort für die Tabelle an. Generell soll an der Tabelle nicht geändert werden können, deshalb die geschützten Bereiche. Nun soll der Nutzer aber per Button den einen Bereich freigeben und den anderen schützen können - und ebenso natürlich auch wieder zurück.
Ich habe folgendes probiert:
Vielleicht hat jemand eine einfachere Methode parat, den Zellschutz zu ändern - bzw. vorallem eine Lösung, die funktioniert! 
Danke im Voraus für die Hilfe, Zahnerer
hat jemand eine Idee, wie man per Makro den Tabellenschutz aufhebt? Wenn ich in einer geschützten Tabelle eine geschützte Zelle in eine ungeschützte umwandeln will, fordert CALC das Passwort für die Tabelle an. Generell soll an der Tabelle nicht geändert werden können, deshalb die geschützten Bereiche. Nun soll der Nutzer aber per Button den einen Bereich freigeben und den anderen schützen können - und ebenso natürlich auch wieder zurück.
Ich habe folgendes probiert:
Code: Alles auswählen
sub FesteAbbuchungen
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args26(0) as new com.sun.star.beans.PropertyValue
args26(0).Name = "Protect"
args26(0).Value = false
dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args26())
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$20:$C$20"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "BackgroundPattern.Transparent"
args2(0).Value = false
args2(1).Name = "BackgroundPattern.BackColor"
args2(1).Value = 16777215
args2(2).Name = "BackgroundPattern.URL"
args2(2).Value = ""
args2(3).Name = "BackgroundPattern.Filtername"
args2(3).Value = ""
args2(4).Name = "BackgroundPattern.Position"
args2(4).Value = com.sun.star.style.GraphicLocation.NONE
dispatcher.executeDispatch(document, ".uno:BackgroundPattern", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(3) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Protection.Locked"
args3(0).Value = true
args3(1).Name = "Protection.FormulasHidden"
args3(1).Value = false
args3(2).Name = "Protection.Hidden"
args3(2).Value = false
args3(3).Name = "Protection.HiddenInPrintout"
args3(3).Value = false
dispatcher.executeDispatch(document, ".uno:Protection", "", 0, args3())
rem ----------------------------------------------------------------------
dim args16(0) as new com.sun.star.beans.PropertyValue
args16(0).Name = "ToPoint"
args16(0).Value = "$B$9"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args16())
rem ----------------------------------------------------------------------
dim args17(4) as new com.sun.star.beans.PropertyValue
args17(0).Name = "BackgroundPattern.Transparent"
args17(0).Value = false
args17(1).Name = "BackgroundPattern.BackColor"
args17(1).Value = 13421823
args17(2).Name = "BackgroundPattern.URL"
args17(2).Value = ""
args17(3).Name = "BackgroundPattern.Filtername"
args17(3).Value = ""
args17(4).Name = "BackgroundPattern.Position"
args17(4).Value = com.sun.star.style.GraphicLocation.NONE
dispatcher.executeDispatch(document, ".uno:BackgroundPattern", "", 0, args17())
rem ----------------------------------------------------------------------
dim args18(3) as new com.sun.star.beans.PropertyValue
args18(0).Name = "Protection.Locked"
args18(0).Value = false
args18(1).Name = "Protection.FormulasHidden"
args18(1).Value = false
args18(2).Name = "Protection.Hidden"
args18(2).Value = false
args18(3).Name = "Protection.HiddenInPrintout"
args18(3).Value = false
dispatcher.executeDispatch(document, ".uno:Protection", "", 0, args18())
rem ----------------------------------------------------------------------
dim args25(0) as new com.sun.star.beans.PropertyValue
args25(0).Name = "Protect"
args25(0).Value = true
dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args25())
end sub

Danke im Voraus für die Hilfe, Zahnerer