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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Papyjac
Le #16409781
Bonjour Michel

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 !
michel.villaume
Le #16409971
Mon calcul doit me permettre de trouver le nombre de victoire d'une
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"
Bonjour Michel

Si tu penses écrire en VB l'équivalent de cette fonction, je présag e
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 utilisan t 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

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 !


lSteph
Le #16410561
Bonjour,
(sans vba)

=SI(D124<12;NB.SI(DECALER(FR_A!
BQ53:BZ53;;;;D124);"3");NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;41-
(D124-12));"3"))

'lSteph




On 25 juil, 15:19, wrote:
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 !


isabelle
Le #16410671
bonjour Michel,

Function MaFormulePerso(cible As Range) As Double
x = [cible]
Select Case x
Case Is < 11: y = Application.CountIf(Sheets("FR_A").Range(Cells(53, 69), Cells(53, 69 + (x - 1))), 3)
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 :
Mon calcul doit me permettre de trouver le nombre de victoire d'une
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"
Bonjour Michel

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

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 !





Modeste
Le #16411231
Bonsour® avec ferveur ;o))) vous nous disiez :

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.


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)))
LSteph
Le #16413891
...oupss , il sagit de 43-(D124 et non pas 41

=SI(D124<12;NB.SI(DECALER(FR_A!BQ53:BZ53;;;;D124);"3");
NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;43-(D124-12));"3"))


--
lSteph

lSteph a écrit :
Bonjour,
(sans vba)

=SI(D124<12;NB.SI(DECALER(FR_A!
BQ53:BZ53;;;;D124);"3");NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;41-
(D124-12));"3"))

'lSteph




On 25 juil, 15:19, wrote:
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 !





michel.villaume
Le #16423331
Merci pour votre aide à tous, ça marche.

Désolé pour le retard de ma réponse, j'étais en week end. merci enc ore






On 26 juil, 10:54, LSteph
...oupss , il sagit de 43-(D124 et non pas 41

=SI(D124<12;NB.SI(DECALER(FR_A!BQ53:BZ53;;;;D124);"3");
NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;43-(D124-12));"3"))

--
lSteph

lSteph a écrit :



> Bonjour,
> (sans vba)

> =SI(D124<12;NB.SI(DECALER(FR_A!
> BQ53:BZ53;;;;D124);"3");NB.SI(DECALER(FR_A!AA53:BQ53;;D124-12;;41-
> (D124-12));"3"))

> 'lSteph

> On 25 juil, 15:19, wrote:
>> 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 Coun tIF
>> mais je ne connais pas bien le VB et ma syntaxe ne doit pas être bon ne
>> pouvez vous m'aider ??

>> D'avance merci !- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme