Page 1 sur 1

NB.SI en 3D

Publié : 20 févr. 2006 16:08
par MarcT
Bonjour à tous,
j'utilise la version 2.0.1
je commence à migrer d'excel vers OOO que je trouve absolument génial.
je rencontre qq difficultés (j'imagine que vous vous en doutez !!)
de manière générale sur les macros mais je pense que je reviendrais en parler. Pour l'instant, j'avais une fonction rajouter sur Excel qui me permettait d'utiliser la fonction NB.SI sur plusieurs feuilles. je n'y arrive pas avec OOO
merci de votre aide
Marc T

Publié : 20 févr. 2006 21:06
par MichelXld
bonsoir

tu pourrais tester une fonction personnalisée de ce type

Code : Tout sélectionner

Function FONCTION3D(Debut As String, Fin As String , Plage As String ,Critere )As Long
Dim i As Integer , j As Integer , X As Integer
Dim appelFonction As Object

FONCTION3D = 0

i = ThisComponent.Sheets.getByName(Debut).getCellRangeByName("A1").cellAddress.Sheet
j= ThisComponent.Sheets.getByName(Fin).getCellRangeByName("A1").cellAddress.Sheet

For X = i To J
Feuille = ThisComponent.getSheets.getByIndex( X ) 
appelFonction = createUnoService("com.sun.star.sheet.FunctionAccess") 

FONCTION3D = FONCTION3D + _
appelFonction.callFunction("CountIf", Array( Feuille.getCellRangeByName(Plage) , Critere ))
Next X

End Function

et dans ta cellule tu saisies la fonction

Code : Tout sélectionner

=FONCTION3D("Feuille1";"Feuille3";"A1:A10";"MotCle")

cet exemple ne gère pas les messages d'erreur en cas de saisie erronée


bonne soiree
michel

Publié : 22 févr. 2006 09:29
par MarcT
Bonjour Michel,
merci pour ta réponse,
j'ai quand j'active la macro un message d'erreur ... mais j'arrive également à faire fonctionner la fonction dans la feuille, par contre celle ci n,'est pas automatisé (je dois lancer fonction à chaque fois que je fais des modifs sur les feuilles) est-ce normal et y a t'il une méthode pour que ça calcul tt seul.
bonne journée
amicordialement
Marc