Page 1 sur 1

NB.SI en 3D

MessagePublié: 20 Fév 2006 17: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

MessagePublié: 20 Fév 2006 22:06
par MichelXld
bonsoir

tu pourrais tester une fonction personnalisée de ce type

Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
=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

MessagePublié: 22 Fév 2006 10: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