Fonction nb.si en vba
Le
michel.villaume
Bonjour,
Je souhaite réaliser la fonctione excel suivante :
=SI(D124=1;NB.SI(FR_A!BQ53;"3");SI(D124=2;NB.SI(FR_A!
BQ53:BR53;"3");SI(D124=3;NB.SI(FR_A!
BQ53:BS53;"3");SI(D124=4;NB.SI(FR_A!
BQ53:BT53;"3");SI(D124=5;NB.SI(FR_A!
BQ53:BU53;"3");SI(D124=6;NB.SI(FR_A!
BQ53:BV53;"3");SI(D124=7;NB.SI(FR_A!
BQ53:BW53;"3");SI(D124=8;NB.SI(FR_A!
BQ53:BX53;"3");SI(D124=9;NB.SI(FR_A!
BQ53:BY53;"3");SI(D124=10;NB.SI(FR_A!
BQ53:BZ53;"3");SI(D124=11;NB.SI(FR_A!
AA53:BQ53;"3");SI(D124=12;NB.SI(FR_A!
AB53:BQ53;"3");SI(D124=13;NB.SI(FR_A!
AC53:BQ53;"3");SI(D124=14;NB.SI(FR_A!AD53:BQ53;"3");""))))))))))))))
Si la cellule D124 contient la valeure 1, je compte dans une plage de
la feuille FR_A le nombre de valeur 3, sinon si la valeure de la
cellule est 2, je recherche sur une plage diffèrene la valeure de
3 ainsi de suite jusqu'à 38.
Dans une cellule F123 je souhaite obtenir le résultat.
Excel ne me permet d'enchainer autant de si à la suite.
Je cherche à faire une fonction en VB, j'ai essayé avec IF et CountIF
mais je ne connais pas bien le VB et ma syntaxe ne doit pas être bonne
pouvez vous m'aider ??
D'avance merci !
Je souhaite réaliser la fonctione excel suivante :
=SI(D124=1;NB.SI(FR_A!BQ53;"3");SI(D124=2;NB.SI(FR_A!
BQ53:BR53;"3");SI(D124=3;NB.SI(FR_A!
BQ53:BS53;"3");SI(D124=4;NB.SI(FR_A!
BQ53:BT53;"3");SI(D124=5;NB.SI(FR_A!
BQ53:BU53;"3");SI(D124=6;NB.SI(FR_A!
BQ53:BV53;"3");SI(D124=7;NB.SI(FR_A!
BQ53:BW53;"3");SI(D124=8;NB.SI(FR_A!
BQ53:BX53;"3");SI(D124=9;NB.SI(FR_A!
BQ53:BY53;"3");SI(D124=10;NB.SI(FR_A!
BQ53:BZ53;"3");SI(D124=11;NB.SI(FR_A!
AA53:BQ53;"3");SI(D124=12;NB.SI(FR_A!
AB53:BQ53;"3");SI(D124=13;NB.SI(FR_A!
AC53:BQ53;"3");SI(D124=14;NB.SI(FR_A!AD53:BQ53;"3");""))))))))))))))
Si la cellule D124 contient la valeure 1, je compte dans une plage de
la feuille FR_A le nombre de valeur 3, sinon si la valeure de la
cellule est 2, je recherche sur une plage diffèrene la valeure de
3 ainsi de suite jusqu'à 38.
Dans une cellule F123 je souhaite obtenir le résultat.
Excel ne me permet d'enchainer autant de si à la suite.
Je cherche à faire une fonction en VB, j'ai essayé avec IF et CountIF
mais je ne connais pas bien le VB et ma syntaxe ne doit pas être bonne
pouvez vous m'aider ??
D'avance merci !

Poser une question


Si tu penses écrire en VB l'équivalent de cette fonction, je présage
quelques diificultés de mise au point... mais tout est possible bien sûr
Au sujet de la fonction ci-dessous, je pense qu'il faudrait d'abord la
simplifier, soit avec quelques calculs intermédiaires, soit en utilisant des
fonctions plus puissantes que SI et NB.SI
Pour te conseiller, il faudrait m'indiquer la nature du résultat cherché et
les données traitées pour l'obtenir
--
P a p y j a c
news:
Bonjour,
Je souhaite réaliser la fonctione excel suivante :
=SI(D124=1;NB.SI(FR_A!BQ53;"3");SI(D124=2;NB.SI(FR_A!
BQ53:BR53;"3");SI(D124=3;NB.SI(FR_A!
BQ53:BS53;"3");SI(D124=4;NB.SI(FR_A!
BQ53:BT53;"3");SI(D124=5;NB.SI(FR_A!
BQ53:BU53;"3");SI(D124=6;NB.SI(FR_A!
BQ53:BV53;"3");SI(D124=7;NB.SI(FR_A!
BQ53:BW53;"3");SI(D124=8;NB.SI(FR_A!
BQ53:BX53;"3");SI(D124=9;NB.SI(FR_A!
BQ53:BY53;"3");SI(D124;NB.SI(FR_A!
BQ53:BZ53;"3");SI(D124;NB.SI(FR_A!
AA53:BQ53;"3");SI(D124;NB.SI(FR_A!
AB53:BQ53;"3");SI(D124;NB.SI(FR_A!
AC53:BQ53;"3");SI(D124;NB.SI(FR_A!AD53:BQ53;"3");""))))))))))))))
Si la cellule D124 contient la valeure 1, je compte dans une plage de
la feuille FR_A le nombre de valeur 3, sinon si la valeure de la
cellule est 2, je recherche sur une plage diffèrene la valeure de
3 ... ainsi de suite jusqu'à 38.
Dans une cellule F123 je souhaite obtenir le résultat.
Excel ne me permet d'enchainer autant de si à la suite.
Je cherche à faire une fonction en VB, j'ai essayé avec IF et CountIF
mais je ne connais pas bien le VB et ma syntaxe ne doit pas être bonne
pouvez vous m'aider ??
D'avance merci !
equipe de football, la victoire correspond à la valeure 3 dans mon
tableau situé dans la feuille FRA_A, les valeures que j'attribue en
D124 correspondent à la date de la journée de championnat souhaitée
(de 1 à 38) la plage de recherche est variable pour chaque valeur de
D124.
Ainsi j'espère obtenir par exemple le nombre de victoire obtenu après
6 journées. (si(d124=6;nb.si(FR_A!BQ53:BV53;"3")).
FR_A!BQ53:BV53 est la plage qui englobe les 6 premières journées de
championnat. (elle contient des valeures de type 3 pour une victoire N
pour Nul et D pour défaite)
J'espère être plus clair
merci
On 25 juil, 15:53, "Papyjac"
(sans vba)
=SI(D124 BQ53:BZ53;;;;D124);"3");NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;41-
(D124-12));"3"))
'lSteph
On 25 juil, 15:19, wrote:
Function MaFormulePerso(cible As Range) As Double
x = [cible]
Select Case x
Case Is Case 11: y = Application.CountIf(Sheets("FR_A").Range(Cells(53, 69), Cells(53, 27)), 3)
Case Is > 11: y = Application.CountIf(Sheets("FR_A").Range(Cells(53, 69), Cells(53, 27 + (x - 11))), 3)
End Select
MaFormulePerso = y
End Function
isabelle
a écrit :
j'ai du mal à interpreter la plage AA53:BQ53 qui correspond à 43 cellules pour 11 rencontres ???
ne serait-ce pas plutot BQ53:CA53
en F123 mettre la formule :
=NB.SI(DECALER(FR_A!BP53;0;0;1;D124);"3")
en VBA
Range("F123").FormulaLocal="=NB.SI(DECALER(FR_A!BP53;0;0;1;D124);""3" ")"
--
--
@+
;o)))