Bonjour Bernard,
bonne année 2025 !
Le 03/01/2025 à 11:31, Bernard Siaud alias Troumad a écrit :
J'ai un fichier de travail que je peux transmettre ici dans lequel je
souhaitais utiliser la fonction round
(https://help.libreoffice.org/latest/fr/text/sbasic/shared/03170000.html).
Pour utiliser cette macro, il faut rajouter en début de fichier macro :
Option VBASupport 1
Si je le fais, j'ai une erreur qui apparait plus lors de l'appel d'une
fonction personnelle (il souhaite un "=" lors de l'appel). Cet égal n'a
rien à faire à ce niveau.
Et si tu nous montrais le code incriminé, in extenso ?
En passant : LibO version ? Version système ?
PS : tu peux utiliser les fonctions du tableur au moyen d'un appel à
l'API ("com.sun.star.sheet.FunctionAccess").
8< --------------------------------------------------
Function RunSpreadsheetFunction(ByRef pFuncName As String, pArrParams()
As Variant) As Variant
'returns the result of a spreadsheet function execution.
'Input:
'-- pFuncName: the spreadsheet function name (EN version only) (ex:
"AVERAGE")
'-- pArrParms(): an array containing all parameters for the function
execution.
' See the Calc help to know which information to store there.
'Output: a variant value with the result of the function execution or
NULL if something went wrong.
'
'Example: MATCH function
'RowIndex = RunSpreadsheetFunction("MATCH", Array(Criterion, Vector,
Option))
'where
'-- Criterion: the data used as a criterion, type matching the one in
the vector
'-- Vector: the vector in which to match
'-- option: the search option (for more information, see Calc help)
'returns the row index where the data matches the criterion.
Dim l_Result As Variant
Dim l_FuncName As String
Dim lo_Func As Object 'the calc function access object
l_Result = NULL
l_FuncName = UCase(Trim(pFuncName))
If (l_FuncName <> "") Then
lo_Func = CreateUnoService("com.sun.star.sheet.FunctionAccess")
On Local Error Resume Next
l_Result = lo_Func.callFunction(l_FuncName, pArrParams())
End If
RunSpreadsheetFunction = l_Result
End Function 'RunSpreadsheetFunction
--------------------------------------------- >8
Utilisation avec ROUND() (utiliser les noms de fonctions EN) :
Resultat = RunSpreadsheetFunction("ROUND", Array(2.56, 1))
Amicalement,
--
Jean-Francois Nifenecker, Bordeaux
07.52.63.25.54
--
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy