Errore dopo applicazione Filtro automatico impossibile salvare il file

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Avatar utente
Biagio91
Messaggi: 244
Iscritto il: mercoledì 3 febbraio 2021, 20:25

Errore dopo applicazione Filtro automatico impossibile salvare il file

Messaggio da Biagio91 »

Salve,
da un paio di giorni sto sbattendo la testa contro un problema assai strano.
Dopo aver ordinato A-Z un elenco tramite codice, mi sparice il filtro automatico impostato sulla cella di intestazione.

Dopo aver registrato il codice per applicare un filtro alla cella intestazione dell'elenco, il file viene bloccato e non si riesce più a sovrascrivere salvare.

Codice: Seleziona tutto

sub ImpostaFiltro_Clienti
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "By"
args2(0).Value = 1
args2(1).Name = "Sel"
args2(1).Value = true

dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataFilterAutoFilter", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Sel"
args6(0).Value = false

dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args6())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:TerminateInplaceActivation", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Cancel", "", 0, Array())


end sub 

ho provato a rielaborare come segue

Codice: Seleziona tutto

Sub ImpostaFiltro_Clienti
REM Dim oSortFields(0) As New com.sun.star.util.SortField
Dim oDoc As Object
Dim FoglioAttivo as object
Dim FoglioClienti As Object
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
On Error GoTo ErrorHandler
oDoc = ThisComponent
FoglioClienti = oDoc.Sheets.GetByName("shClienti")

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$B$3"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DataFilterAutoFilter", "", 0, Array())
Exit Sub

ErrorHandler:
Call ErroreDiversoDaZero

End sub
ma niente mi mette il filtro su B4.

Per caso anche a voi è mai capitato qualcosa di simile? cosa sto sbagliando?
Errore nel salvare il documento "NomeDoc"
Errore di scrittura.
Impossibile scrivere nel file.

Il foglio è protetto e viene sbloccato/ordinato/ribloccato in quel frangente si perde il filtro standard, proprio alla riga
oCellRange.Sort(oSortDesc())

Come risolvo?

Grazie mille
Ciao
OpenOffice 4.1.8 su Windows 7-10
::::May we meet again into the matrix::::