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