🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Schutz eines Tabellenblattes per Makro aufheben

Alles zur Programmierung im LibreOffice.
Antworten
Reini52
Beiträge: 5
Registriert: Di 27. Feb 2018, 15:21

Schutz eines Tabellenblattes per Makro aufheben

Beitrag von Reini52 » Mi 28. Feb 2018, 14:33

Hallo,

Ich hab eine Tabelle (ein Tabellenblatt) das über Extras standardmäßig geschützt Ist.

Diesen Schutz möchte ich per Makro abschalten. Ich hab dazu ein Makro aufgezeichnet. Dieses Makro funktioniert, wenn ich es über "Extras", "Makro", "Makroausführen" zum Laufen bringe. Das Tabellenblatt wird korrekt entsperrt.

Ich möchte das Makro aber einen Button im selben - gesperrten - Tabellenblatt starten. Nach Drückend es Button erscheint die Fehlermeldung "Protected cells can not be modified". Offensichtlich wirkt sich der Schutz des Tabellenblatts auch auf die Funktionstaste im Tabellenbaltt aus.

Kann man das in den Eigenschaften des Buttons abschalten oder gibt es eine andere Lösung? (so wie in Excel)

Das Ziel ist zunächst den Tabellenblattschutz zu entfernen, dann einen Bereich in der Tabelle zu löschen und danach den Schutz wieder aktiv zu machen.

(Ich setlle das Problem auch im Bereich Calc ein)

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Schutz eines Tabellenblattes per Makro aufheben

Beitrag von F3K Total » Mi 28. Feb 2018, 18:04

Hi,
habe zwar ein Makro dazu geschrieben, funktioniert bei mir problemlos, siehe Anlage.
Hier das Makro:

Code: Alles auswählen

Sub Protect_unprotect(Event)
    oButton = Event.Source.Model
    oSheet = ThisComponent.CurrentController.activeSheet
    if oButton.Label = "entsperren" then
        oSheet.unprotect("")'zwischen die Hochkommas kann ein Passwort geschrieben werden ala "1234"
        oButton.Label = "sperren"
        oButton.BackgroundColor = 65280
    else
       oButton.Label = "entsperren"
       oButton.BackgroundColor  = 16711680
       oSheet.protect("")'zwischen die Hochkommas kann ein Passwort geschrieben werden ala "1234"
    endif
End Sub
Gruß R

EDIT: habe gerade gesehen, das es ja eine elegante Lösung über den Tabellenreiter gibt ... bei LibreOffice, für Openoffice geht meine Lösung noch gut.
Dateianhänge
Protect_unprotect.ods
(10.65 KiB) 248-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten