Blattschutz für alle mit einem Click

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

effektiver
*
Beiträge: 10
Registriert: Sa, 19.02.2011 17:25

Blattschutz für alle mit einem Click

Beitrag von effektiver »

Hallo!

*meinersterBeitraghier* :-)

Ich bin neuer Nutzer von OO und habe eine Frage an die, die Makros erstellen können.

Ich habe eine Datei mit diversen Blättern als Tabellenkalkulation (Calc). Blattschutz kenne ich. Aber ich möchte gerne alle Blätter, oder noch besser immer die gleichen ausgewählten Blätter mit einem Paßwort schützen und wieder öffnen können. Ich habe schon die Forensuche ausprobiert, aber nichts gefunden was mir da weiter hilft.

Über eine Antwort würde ich mich sehr freuen.

Viele Grüße!
Eby
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Blattschutz für alle mit einem Click

Beitrag von komma4 »

Willkommen im Forum.

effektiver hat geschrieben:Ich bin neuer Nutzer von OO und habe eine Frage an die, die Makros erstellen können.
Auch neu in der Forenwelt?
Hier gibt es für Makrofragen ein Unterforum - deshalb habe ich Dein Post gleich dahin verschoben 8)


effektiver hat geschrieben:Aber ich möchte gerne alle Blätter, oder noch besser immer die gleichen ausgewählten Blätter mit einem Paßwort schützen und wieder öffnen können.

Code: Alles auswählen

StarDesktop.CurrentComponent.Sheets().getByIndex( 0 ).protect( "" )
Ein Passwort könnte dann innerhalb der Anführungszeichen stehen...

Um die Anweisung noch eine Schleife gebaut - arbeitet die Zeile für alle Tabellenblätter

Code: Alles auswählen

For i = 0 to StarDesktop.CurrentComponent.Sheets().Count - 1
   StarDesktop.CurrentComponent.Sheets().getByIndex( i ).protect( "" )
Next i
Die Anweisung zum Schutz entfernen heisst dann -logischerweise- .unprotect( "" )

Hilft Dir das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
effektiver
*
Beiträge: 10
Registriert: Sa, 19.02.2011 17:25

Re: Blattschutz für alle mit einem Click

Beitrag von effektiver »

Hallo!

Mit Makros muss ich mir immer helfen lassen.
Ansonsten auch nur mit Excel. Aber ich muß nun
mit OO weiter machen.

Die Exceldatei hatten die Makros alle darin.
Nur funktionieren die nicht mit OO :-(

Dein Vorschlag habe ich leider nicht zum laufen gebracht.

Danke trotzdem
Eby
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Blattschutz für alle mit einem Click

Beitrag von komma4 »

effektiver hat geschrieben:Dein Vorschlag habe ich leider nicht zum laufen gebracht.
Woran hängt es?

Muss zugeben... musste meine Tochter abholen und habe die Schleife nicht probiert.
Gibt es eine Fehlermeldung?


Oder haperts mit dem Wissen um Makroeinsatz im Allgemeinen?

http://www.ooowiki.de/MakrosInstallieren
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
effektiver
*
Beiträge: 10
Registriert: Sa, 19.02.2011 17:25

Re: Blattschutz für alle mit einem Click

Beitrag von effektiver »

Lieben Dank!

Hab gerade auch keine Zeit.... aber vielen Dank auch für die Info zu den Makros.
Spätestens morgen gebe ich Bescheid.

Alles Gute!
Eby
effektiver
*
Beiträge: 10
Registriert: Sa, 19.02.2011 17:25

Re: Blattschutz für alle mit einem Click

Beitrag von effektiver »

Hallo am Sonntag!

Ich bin noch nicht weiter gekommen.

Jetzt kopiere ich mal das Makro von der Exceldatei hier hinein.
Eventuell kann man das dann lieber einfacher auf OO anpassen :-)

Danke!
Eby

Code: Alles auswählen


Sub Blattschutz_ein()
    Dim Blatt As Worksheet
    Dim Passwort As String
    Passwort = InputBox("Enter = Kein Passwort.", "Bitte Passwort eingeben:")
    For Each Blatt In ActiveWorkbook.Sheets
        Blatt.Protect Password:=Passwort, _
        DrawingObjects:=True, _
        contents:=True, _
        Scenarios:=True
    Next
End Sub


Sub Blattschutz_aus()
    Dim Blatt As Worksheet
    Dim Passwort As String
    Passwort = InputBox("Enter = Kein Passwort.", "Bitte Passwort eingeben:")
    For Each Blatt In ActiveWorkbook.Sheets
        If Passwort > "" Then
            Blatt.Unprotect Password:=Passwort
        Else: Blatt.Unprotect
        End If
    Next
End Sub
Antworten