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. 🤗

Tabellenstruktur schützen

Alles zur Programmierung im LibreOffice.
Antworten
andremike
Beiträge: 3
Registriert: Do 27. Jan 2022, 14:04

Tabellenstruktur schützen

Beitrag von andremike » Do 27. Jan 2022, 14:09

Hallo zusammen,

ich habe nun einige Stunden mit der Recherche verbracht, aber keine Lösung auf die Frage "Wie kann ich per Makro die Tabellenstruktur schützen?" gefunden. Bloß das Schützen eines Tabellenblattes oder des Dokumentes selbst.
Ist die Funktionalität überhaupt per Makro nutzbar?
VG
andremike

Kleine Ergänzung: Das Kennwort zum Schutz soll nicht manuell eingegeben sondern vom Makro gesetzt werden.
Zuletzt geändert von andremike am Do 27. Jan 2022, 14:18, insgesamt 1-mal geändert.

Mondblatt24
Beiträge: 2837
Registriert: Fr 3. Mär 2017, 17:12

Re: Tabellenstruktur schützen

Beitrag von Mondblatt24 » Do 27. Jan 2022, 14:15

Hallo,
muss es unbedingt ein Makro sein, reicht es nicht die Funktion über das Menü Extras → Tabellenstruktur schützen… zu aktivieren?

Gruß
Peter
Win 11 (x64) ▪ LO 24.2.1.2 (x64) ▪ AOO Portable 4.1.15
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.

andremike
Beiträge: 3
Registriert: Do 27. Jan 2022, 14:04

Re: Tabellenstruktur schützen

Beitrag von andremike » Do 27. Jan 2022, 14:21

Hallo Peter,

genau das soll ja verhindert werden, da dieses zu versteckende Tabellenblatt Daten enthält, die nur einem kleinen Mitarbeiterkreis zugänglich sein sollen. Ohne diesen Schutz könnte ja jeder alles einblenden...

LG

andremike
Beiträge: 3
Registriert: Do 27. Jan 2022, 14:04

Re: Tabellenstruktur schützen

Beitrag von andremike » Mo 7. Feb 2022, 09:54

Ergänzung:
Hallo zusammen,
mit der etwas unprofessionellen Methode "Makro aufzeichnen" habe ich das hier erhalten:

dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Protect"
args4(0).Value = true
dispatcher.executeDispatch(document, ".uno:ToolProtectionDocument", "", 0, args4())

Allerdings muss dann das Kennwort manuell eingegeben werden und eben das soll ja ebenfalls per Makro passieren.
Irgendwie komme ich in der Sache nicht weiter...

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Tabellenstruktur schützen

Beitrag von craig » Mo 7. Feb 2022, 21:05

Hallo,

der Makrorekorder schreibt meist nur die Dispatch-Commands,
eben Einzelbefehle, welche irgendetwas aufrufen.
Im Anschluß muss dem Dispatch-Command immer Parameter in Form eines
Eigenschafts-Array's/ ein Struct übergeben werden.

Das alles ist nur bedingt dokumentiert und ich habe mir zuweilen schon
mehrfach die Haare bei der Suche nach den passenden Struct's gerauft.

Deshalb arbeite ich lieber mit der Starbasic-API.
a) diese ist sehr gut dokumentiert, aber man muss sie erst verstehen lernen.
b) jede Menge Code-Beispiele im Netz.

ABER, es ist nicht einfach die Materie der objektorientierten Starbasic-Programmierung zu verstehen.

-------------------------------------------
Setze einmalig manuell einen Passwortschutz für eine Tabelle und
stelle die Optionen ein, welche erlaubt und gesperrt sein sollen.

Dieses Makro prüft den Status des Tabellenblattes:
a) ist es geschützt, dann wird der Schutz automatisch aufgehoben (Passwort im Code anpassen!)
b) ist es ungeschützt, dann wird der Passwortschutzt gesetzt.

Code: Alles auswählen

REM  *****  BASIC  *****
Option Explicit

REM ════════════════════════════════════════════════════════════════════════════════════════════════════
REM					CALC: 
REM 1)	[Tabellen Schutz an aus]
REM ════════════════════════════════════════════════════════════════════════════════════════════════════

REM 1)
REM ---------------------------------------------------------------------
REM			Makro prueft ob ein Tabellenschutz vorhanden ist,
REM				WENN = JA, dann wird der Schutz aufgehoben
REM
REM		WENN kein Tabellenschutz vorhanden ist, wird der Schutz gesetzt.
REM
REM				WENN Passwoerter im Makro angegeben sind, DANN
REM					MUESSEN in beiden CASE-Anweisungen 
REM				die gleichen Passwoerter angegeben werden!!!
REM ---------------------------------------------------------------------
Sub [Tabellen Schutz an aus]
Dim oDoc as Object
Dim oCC as Object
Dim oSheet as Object

	oDoc=ThisComponent
		oCC=oDoc.CurrentController
			oSheet=oCC.ActiveSheet

			select Case oSheet.isprotected
				case "True"
					'Schutz mit Passwort entfernen:
					oSheet.Unprotect( "123" )
				case "False"
					'Schutz mit Passwort setzen:
					oSheet.Protect( "123" )
			End Select

End Sub
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

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