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)