Bonjour à tous,
J'ai un petit souci.
Je tente avec succès d'utiliser une fonction CALC dans une macro lorsque 
l'argument passé est une valeur, une chaine ou un tableau.
Cf. l'exemple du chapitre 12-03 de l'excellent livre de b. Marcelly et L. 
Godard un peu modifié:
Sub UtiliserFonctionCalc()
Dim params As Variant
params = Array(35,75,1110)
Print FonctionCALC("LCM",params())
End Sub

Function FonctionCALC(NomFonction as String, Argument As Variant)
Dim acceder As Object
acceder = CreateUnoService("com.sun.star.sheet.FunctionAccess")
FonctionCALC = acceder.callFunction(NomFonction, Argument)
End Function

qui fonctionne très bien mais lorsque l'argument est un objet, la fonction 
renvoie invariablement 0.
Par exemple, si je veux récupérer le nombre de valeurs des cellules de la 
première colonne d'un tableau: 
Sub UtiliserFonctionCalc2
Dim Cible as Object
Cible = ThisComponent.CurrentController.ActiveSheet.Columns(0)
Print FonctionCALC("COUNTA", Cible)
End Sub
Le logiciel renvoie toujours 0 même si des valeurs sont servies dans cette 
colonne.
Bon, j'ai contourné le problème en récupérant la partie de la colonne "A' 
utilisée et en testant dans une boucles les cellules une à une mais si la 
fonction marchait, le code serait bien certainement bien plus rapide.
Où est le lézard ? (précision : OOo 2.02 utilisée)

Répondre à