Vi seguo da un po', mi avete risolto qualche dubbio "base" su open office e le macro ma sto sbattendo la testa sulla creazione di una funzione in vba...
In pratica ho bisogno che alla verifica di una condizione (un determinato valore in E43) venga nascosta la colonna B e mostrata la colonna C, e viceversa.
Esempio:
Se in E43 ho il valore "MANUAL" allora avrò la colonna B nascosta e la colonna C visibile.
Viceversa, se in E43 ho qualsiasi altro valore diverso da "MANUAL" avrò la colonna C nascosta e la colonna B visibile.
Questo è quello che sono riuscito a scopiazzare qua e là:
Codice: Seleziona tutto
REM ***** BASIC *****
Option VBASupport 1
Public Function HIDECOLUMN(MM as String)
REM---- VARIABILI
dim col1(0) as new com.sun.star.beans.PropertyValue
col1(0).Name = "ToPoint"
col1(0).Value = "$B$5"
dim col2(0) as new com.sun.star.beans.PropertyValue
col2(0).Name = "ToPoint"
col2(0).Value = "$C$5"
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 ---- CONDIZIONE
If MM="MANUAL" then
REM --- Seleziono e nascondo COL1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, col1())
dispatcher.executeDispatch(document, ".uno:HideColumn", "", 0, col1())
REM --- Seleziono e mostro COL2
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, col2())
dispatcher.executeDispatch(document, ".uno:ShowColumn", "", 0, col2())
else
REM --- Seleziono e nascondo COL2
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, col2())
dispatcher.executeDispatch(document, ".uno:HideColumn", "", 0, col2())
REM --- Seleziono e mostro COL1
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, col1())
dispatcher.executeDispatch(document, ".uno:ShowColumn", "", 0, col1())
end if
End Function
Avete soluzioni/consigli? Purtroppo il mio bagaglio limitato di VB non mi consente di arrivare alla soluzione!
Grazie!