[RISOLTO] macro sblocco celle su foglio protetto

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Elio Buonocore
Messaggi: 12
Iscritto il: martedì 10 agosto 2010, 9:51

[RISOLTO] macro sblocco celle su foglio protetto

Messaggio da Elio Buonocore »

Sto effettuando il porting di una macro Excel in OOo . La macro effettua la cancellazione dei dati di un'area di input per l'utente su un foglio di lavoro protetto che ha le celle dell'area di input sbloccate. Excel ricorda quale queste siano quando alla fine della macro di riprotegge il foglio. Calc invece riprotegge integralmente il foglio dopo l'istruzione:
.....
oSheet.Protect "pippo"
.....
Come posso dare di nuovo accesso all'utente all'area di input ( denominata "InputArea" ) senza sbloccare l'intero foglio?
Grazie
Elio Buonocore
Ultima modifica di Elio Buonocore il mercoledì 11 agosto 2010, 2:21, modificato 1 volta in totale.
Elio Buonocore OpenOffice 3.2 su Vista
Avatar utente
Gumo
Messaggi: 1227
Iscritto il: lunedì 15 marzo 2010, 13:43
Località: IT

Re: macro sblocco celle su foglio protetto

Messaggio da Gumo »

Selezioni la cella
dx mouse > formatta celle > Protezione celle
togli la spunta da "protetto"

in questo modo la cella resta digitabile anche se il foglio è protetto.
ciao
g
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
Elio Buonocore
Messaggi: 12
Iscritto il: martedì 10 agosto 2010, 9:51

Re: macro sblocco celle su foglio protetto

Messaggio da Elio Buonocore »

Ma questo lo avevo già sperimentato. Ciò che cerco di fare è replicare con una macro quello che è già possibile all'interfaccia utente. Purtroppo il seguente codice falliscere nello sbloccare le celle di InputArea. Si assume che il foglio1 sia protetto con password pippo e che le celle di InputArea siano sbloccate con i comandi dell'interfaccia utente:

Sub Prova
Dim rngClear As Object
Dim oSheet1 As Object
oSheet1 = ThisComponent.Sheets.GetByName("Foglio1")
oSheet1.Unprotect "pippo"
rngClear = oSheet1.GetCellRangeByName("InputArea")
rngClear.clearContents( _
com.sun.star.sheet.CellFlags.VALUE _
+ com.sun.star.sheet.CellFlags.STRING _
+ com.sun.star.sheet.CellFlags.DATETIME _
+ com.sun.star.sheet.CellFlags.ANNOTATION _
+ com.sun.star.sheet.CellFlags.FORMULA _
+ com.sun.star.sheet.CellFlags.HARDATTR _
+ com.sun.star.sheet.CellFlags.STYLES _
+ com.sun.star.sheet.CellFlags.OBJECTS _
+ com.sun.star.sheet.CellFlags.EDITATTR)
rngClear.CellProtection.IsLocked = False
oSheet1.Protect "pippo"
End Sub
Elio Buonocore OpenOffice 3.2 su Vista
Elio Buonocore
Messaggi: 12
Iscritto il: martedì 10 agosto 2010, 9:51

Re: macro sblocco celle su foglio protetto

Messaggio da Elio Buonocore »

Ho risolto

Sub Prova
Dim rngClear As Object
Dim oSheet1 As Object
Dim CellProtStruc As Object
oSheet1 = ThisComponent.Sheets.GetByName("Foglio1")
oSheet1.Unprotect "pippo"
rngClear = oSheet1.GetCellRangeByName("InputArea")
rngClear.clearContents( _
com.sun.star.sheet.CellFlags.VALUE _
+ com.sun.star.sheet.CellFlags.STRING _
+ com.sun.star.sheet.CellFlags.DATETIME _
+ com.sun.star.sheet.CellFlags.ANNOTATION _
+ com.sun.star.sheet.CellFlags.FORMULA _
+ com.sun.star.sheet.CellFlags.HARDATTR _
+ com.sun.star.sheet.CellFlags.STYLES _
+ com.sun.star.sheet.CellFlags.OBJECTS _
+ com.sun.star.sheet.CellFlags.EDITATTR)
CellProtStruc = rngClear.CellProtection
CellProtStruc.isLocked = False
rngClear.CellProtection = CellProtStruc
oSheet1.Protect "pippo"
End Sub
Elio Buonocore OpenOffice 3.2 su Vista
Avatar utente
Gumo
Messaggi: 1227
Iscritto il: lunedì 15 marzo 2010, 13:43
Località: IT

Re: [RISOLTO] macro sblocco celle su foglio protetto

Messaggio da Gumo »

Sei stato "troppo generoso" con gli attributi da cancellare!!
Cancella solo gli attribuiti che servono verificali ad uno ad uno.

In particolare non cancellare gli attributi
+ com.sun.star.sheet.CellFlags.HARDATTR _
e
+ com.sun.star.sheet.CellFlags.EDITATTR

Ed a questo punto non sei costretto a riassegnarli con
.CELLPROTECTION

Avrai un codice molto più chiaro
ciao
g
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
Elio Buonocore
Messaggi: 12
Iscritto il: martedì 10 agosto 2010, 9:51

Re: [RISOLTO] macro sblocco celle su foglio protetto

Messaggio da Elio Buonocore »

Grazie per la precisazione
Elio
Elio Buonocore OpenOffice 3.2 su Vista
Rispondi