BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
(gelöst) Problem : Tabelle schützen (Aoo Calc Oberfläche und per Makro)
(gelöst) Problem : Tabelle schützen (Aoo Calc Oberfläche und per Makro)
hallo zusammen,
wenn ich ein tabellenblatt schützen will, wähle ich -->extras ,--> dokument schützen, --> tabelle. im erscheinenden dialog lösche ich das häkchen --> gesperrte zellen wählen.
Somit kann ich wirklich nur freie Zellen anwählen und sehe auch keine Formeln in den gesperrten zellen.
Das ich genau das, was ich möchte.
Nun die zwei Probleme :
1. Die einstellung bleibt nur in der aktiven Sitzung. Beim erneuten öffnen der datei ist das häkchen wieder gesetzt und die gesperrten zellen sind anwählbar und die formeln sichtbar.
2. wenn makros gesperrte zellen ändern sollen, muss ich per macro den blattschutz aufheben und wieder setzen.
zum beispiel : thisComponent.Sheets.getByName(oblattname).protect("")
ich habe weder hier , bei dannehöfer oder piontak gefunden, wie ich diesen haken (gesperrte zellen wählen) per makro ändern kann.
gefunden hab ich lediglich sowas :
'thisComponent.Sheets.getByName("xxxxxx").Protect("UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True")
das funktioniert aber auch mit probieren (klammern, kommas oder " ") nicht . die zeile produziert, wie auch immer, nur fehlermeldungen.
kann mir hier vlt. jemand weiterhelfen ?
wenn ich ein tabellenblatt schützen will, wähle ich -->extras ,--> dokument schützen, --> tabelle. im erscheinenden dialog lösche ich das häkchen --> gesperrte zellen wählen.
Somit kann ich wirklich nur freie Zellen anwählen und sehe auch keine Formeln in den gesperrten zellen.
Das ich genau das, was ich möchte.
Nun die zwei Probleme :
1. Die einstellung bleibt nur in der aktiven Sitzung. Beim erneuten öffnen der datei ist das häkchen wieder gesetzt und die gesperrten zellen sind anwählbar und die formeln sichtbar.
2. wenn makros gesperrte zellen ändern sollen, muss ich per macro den blattschutz aufheben und wieder setzen.
zum beispiel : thisComponent.Sheets.getByName(oblattname).protect("")
ich habe weder hier , bei dannehöfer oder piontak gefunden, wie ich diesen haken (gesperrte zellen wählen) per makro ändern kann.
gefunden hab ich lediglich sowas :
'thisComponent.Sheets.getByName("xxxxxx").Protect("UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True")
das funktioniert aber auch mit probieren (klammern, kommas oder " ") nicht . die zeile produziert, wie auch immer, nur fehlermeldungen.
kann mir hier vlt. jemand weiterhelfen ?
Zuletzt geändert von Nosferan am Mo 15. Mai 2023, 18:39, insgesamt 1-mal geändert.
Gruss
Nosferan
Nosferan
-
- Beiträge: 812
- Registriert: Do 9. Mär 2017, 09:53
Re: tabelle schützen (calc oberfläche und macro)
Nicht bei LibreOffice.
Win 11 (x64) ▪ 24.2.2.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.
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.
Re: tabelle schützen (calc oberfläche und macro)
Hallo,
.protect() hat als Argument "nur" das Passwort. Ein spezifischer Schutz (z. B. gesperrte zellen wählen oder nicht) ist leider nicht möglich (würde ich mir aber auch wünschen).
.protect() hat als Argument "nur" das Passwort. Ein spezifischer Schutz (z. B. gesperrte zellen wählen oder nicht) ist leider nicht möglich (würde ich mir aber auch wünschen).
Gruß,
mikele
mikele
Re: tabelle schützen (calc oberfläche und macro)
Hallo,
deien Schreibweise hat moch auf die Idee gebracht, dass es vielleicht per VBA-Support klappen könnte und verrückterweise geht es:
Ich habe noch kein Pendant zu .EnableSelection in der LibreOffice-API gefunden.
deien Schreibweise hat moch auf die Idee gebracht, dass es vielleicht per VBA-Support klappen könnte und verrückterweise geht es:
Code: Alles auswählen
Option VBASupport 1
Sub schutz
Worksheets("Tabelle1").activate
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect Password:="test"
End Sub
Gruß,
mikele
mikele
Re: tabelle schützen (calc oberfläche und macro)
hallo Mondblatt,
und was genau soll mir da jetzt weiterhelfen ?
Gruss
Nosferan
Gruss
Nosferan
Nosferan
Re: tabelle schützen (calc oberfläche und macro)
hallo mikele,
vielen Dank für deine Antwort, Damit kann man schon mal was anfangen.
Mit copy/past ist der Code, wie meist üblich, bei mir leider nicht lauffähig.
Option VBASupport 1 löst bei mir in diversen Makros plötzlich Fehlermeldungen aus.
Auch kenne ich mich mit dem Kapitel VBA nicht aus und muss mich da erst schlau machen.
Ich werde versuchen, den Code zum Laufen zu bringen und melde mich dann wieder.
Gruss
Nosferan
vielen Dank für deine Antwort, Damit kann man schon mal was anfangen.
Mit copy/past ist der Code, wie meist üblich, bei mir leider nicht lauffähig.
Option VBASupport 1 löst bei mir in diversen Makros plötzlich Fehlermeldungen aus.
Auch kenne ich mich mit dem Kapitel VBA nicht aus und muss mich da erst schlau machen.
Ich werde versuchen, den Code zum Laufen zu bringen und melde mich dann wieder.
Gruss
Nosferan
Gruss
Nosferan
Nosferan
-
- Beiträge: 812
- Registriert: Do 9. Mär 2017, 09:53
Re: tabelle schützen (calc oberfläche und macro)
Hallo,
Gruß
Peter
Wollte es nur mal erwähnt haben, weil es sich bei OpenOffice vermutlich nicht mehr ändern wird.
Gruß
Peter
Win 11 (x64) ▪ 24.2.2.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.
Wenn Eure Frage zutreffend beantwortet wurde, seid so nett und fügt dem Betreff der Eingangsfrage [GELÖST] hinzu.
Re: tabelle schützen (calc oberfläche und macro)
Hallo zusammen,
nach etlichem Probieren habe ich die Lösung gefunden. Ich fasse das Problem nochmal zusammen, da ich denke, dass auch andere User daran interessiert sind.
Problem Blattschutz in Aoo :
Da in Aoo dieser Blattschutz nicht gespeichert wird, muss bei jedem Start der Datei
der Schutz neu gesetzt werden. Realisieren kann man das per Autostart-Makro beim öffnen der Datei.
Ebenso natürlich, wenn ein Makro geschützte Zellen beschreiben will. --> Blatt freigeben, ...schreiben..., --> Blatt schützen.
---
Erreichbar ist der Blattschutz über --> Extras, --> Dokument schützen, --> Tabelle. Im erscheinenden Fenster befindet sich
das Auswahlfeld : --> gesperrte Zellen wählen. Hier muss das Häkchen dazu entfernt werden.
Und genau hier liegt das Problem : Aoo setzt bei jedem öffnen der Datei das Häkchen neu.
Besonders bitter : Dieser Befehl lässt sich über Aoo-Makros NICHT ansprechen.
---
Lösung :
Unter VBA ist der Befehl ansprechbar.
Mit -Option VBASupport 1- wird für und NUR FUER DIESE Seite der Interpreter von Aoo-Code auf VBA-Code umgestellt.
Auf dieser Seite funktioniert dann auch nur VBA-Code, den der Aoo-Interpreter auch implementiert hat.
Normale Aoo-Makros verursachen hier Fehlermeldungen unterschiedlichster Art.
Aus diesem Grund MUSS der VBA-Code auf einer eigenen Seite stehen .
---
Aufruf aus einem normalen Aoo-Makroblatt :
Das VBA-Makro auf einer eigenen Seite. Habe ich mal einfach VBAcode genannt :
Auskommentierte Zeilen waren zum Testen. Die Reihenfolge der zwei Zeilen in Sub bl_schutz muss stimmen, umgekehrt funktioniert es nicht.
Bei dieser Version des Aufrufes ist es egal, ob das Blatt das aktive Blatt oder irgendein Blatt ist. Das klappt auch mit Blättern im Hintergrund.
Bei mir funkioniert das so mit der Variablenübergabe einwandfrei, zuverlässig und blitzschnell.
Ganz herzlichen Dank an Mikele, der mir mit seinem Tipp den entscheidenden Anstoss gegeben hat.
nach etlichem Probieren habe ich die Lösung gefunden. Ich fasse das Problem nochmal zusammen, da ich denke, dass auch andere User daran interessiert sind.
Problem Blattschutz in Aoo :
Da in Aoo dieser Blattschutz nicht gespeichert wird, muss bei jedem Start der Datei
der Schutz neu gesetzt werden. Realisieren kann man das per Autostart-Makro beim öffnen der Datei.
Ebenso natürlich, wenn ein Makro geschützte Zellen beschreiben will. --> Blatt freigeben, ...schreiben..., --> Blatt schützen.
---
Erreichbar ist der Blattschutz über --> Extras, --> Dokument schützen, --> Tabelle. Im erscheinenden Fenster befindet sich
das Auswahlfeld : --> gesperrte Zellen wählen. Hier muss das Häkchen dazu entfernt werden.
Und genau hier liegt das Problem : Aoo setzt bei jedem öffnen der Datei das Häkchen neu.
Besonders bitter : Dieser Befehl lässt sich über Aoo-Makros NICHT ansprechen.
---
Lösung :
Unter VBA ist der Befehl ansprechbar.
Mit -Option VBASupport 1- wird für und NUR FUER DIESE Seite der Interpreter von Aoo-Code auf VBA-Code umgestellt.
Auf dieser Seite funktioniert dann auch nur VBA-Code, den der Aoo-Interpreter auch implementiert hat.
Normale Aoo-Makros verursachen hier Fehlermeldungen unterschiedlichster Art.
Aus diesem Grund MUSS der VBA-Code auf einer eigenen Seite stehen .
---
Aufruf aus einem normalen Aoo-Makroblatt :
Code: Alles auswählen
option eplicit
dim oname
'---
sub blatt_schutz
oname ="acct"
call bl_schutz(oname) ' befindet sich in blatt <VBAcode>
end sub
Code: Alles auswählen
Option VBASupport 1 'ein=1, aus=0
'option explicit
'dim oname
'----------------------------------------------
Sub bl_schutz (oname as string)
'schützt das spezifizierte Tabellenblatt. oname ist der übergebene Blattname
'print oname
'---
Worksheets(oname).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Worksheets(oname).EnableSelection = xlUnlockedCells
End Sub
Bei dieser Version des Aufrufes ist es egal, ob das Blatt das aktive Blatt oder irgendein Blatt ist. Das klappt auch mit Blättern im Hintergrund.
Bei mir funkioniert das so mit der Variablenübergabe einwandfrei, zuverlässig und blitzschnell.
Ganz herzlichen Dank an Mikele, der mir mit seinem Tipp den entscheidenden Anstoss gegeben hat.
Gruss
Nosferan
Nosferan