BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2410
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) 222-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten