Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Guten Tag Werner Tietz,

danke für deine Antwort.

am Freitag, 25. Februar 2011 um 18:24 schrieben Sie:

über die Methode protect und unprotect kann ich in Calc
Tabellenblätter mittels Basic schützen bzw. freigeben.

Wie kann ich eine Tabelle mit protect schützen und die
Option zum Verhindern der Anwahl geschützter Zellen
übergeben?
Diese Option ist offenbar neu in LO hinzugekommen, ich hab nichts 
gefunden um die Einstellung direkt in einer geöffneten Datei zu setzen.
Willkommen im Club.

Evtl. gelingt dir vorläufig ein "Würkaround" : Entpacke die gespeicherte
und geschlossene Datei und ersetze in der content.xml den Text
<table:table-protection table:select-protected-cells="true"
durch
<table:table-protection table:select-protected-cells="false"
und pack wieder ein.
Das habe ich ausprobiert und das funktioniert. Das ist allerdings
umständlicher als rechte Maustaste auf Reiter, alle anwählen und
dann Tabellen schützen. ;-)

Ich suche nach einer Möglichkeit, Makrogesteuert alle Tabellen in der
oben beschriebenen Form zu schützen bzw. freizugeben. Der Status wird
dann in Zelle "C1" gekennzeichnet.

'_________________________________________________________________


Sub TabellenSchutzAn
        Dim oDoc as Object
        Dim oSheet as Object
        Dim eSheets As Object
        Dim oCell as Object
  
        oDoc    = ThisComponent
        eSheets = oDoc.getSheets.createEnumeration
  
        While eSheets.hasMoreElements
        oSheet  = eSheets.nextElement()

                oCell   = oSheet.getCellRangeByName("C1")
                oCell.String = "°"
                oSheet.protect("")

'               MsgBox "Nächster Tabellenname ist: " & oSheet.getName & "."
        Wend
        
        MsgBox "Tabellenschutz wurde aktiviert!" & CHR$(13) &_
        "In Zelle C1 wurde ""°"" eingetragen."

 
End Sub


'_________________________________________________________________

Sub TabellenSchutzAus
        Dim oDoc as Object
        Dim oSheet as Object
        Dim eSheets As Object
        Dim oCell as Object
  
        oDoc    = ThisComponent
        eSheets = oDoc.getSheets.createEnumeration
  
        While eSheets.hasMoreElements
        oSheet  = eSheets.nextElement()

                oCell   = oSheet.getCellRangeByName("C1")
                oSheet.unprotect("")
                oCell.String = ""

'               MsgBox "Nächster Tabellenname ist: " & oSheet.getName & "."
        Wend
        
        MsgBox "Tabellenschutz wurde deaktiviert!" & CHR$(13) &_
        "In Zelle C1 wurde """" eingetragen."
End Sub

'_________________________________________________________________


-- 
Mit freundlichen Grüßen
Jörg Kleinfeld

mailto:joerg.kleinfeld@arcor.de
http://www.bsv.de



-- 
Informationen zur Abmeldung: E-Mail an users+help@de.libreoffice.org
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.