Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction nb.si en vba

7 réponses
Avatar
michel.villaume
Bonjour,

Je souhaite r=E9aliser la fonctione excel suivante :

=3DSI(D124=3D1;NB.SI(FR_A!BQ53;"3");SI(D124=3D2;NB.SI(FR_A!
BQ53:BR53;"3");SI(D124=3D3;NB.SI(FR_A!
BQ53:BS53;"3");SI(D124=3D4;NB.SI(FR_A!
BQ53:BT53;"3");SI(D124=3D5;NB.SI(FR_A!
BQ53:BU53;"3");SI(D124=3D6;NB.SI(FR_A!
BQ53:BV53;"3");SI(D124=3D7;NB.SI(FR_A!
BQ53:BW53;"3");SI(D124=3D8;NB.SI(FR_A!
BQ53:BX53;"3");SI(D124=3D9;NB.SI(FR_A!
BQ53:BY53;"3");SI(D124=3D10;NB.SI(FR_A!
BQ53:BZ53;"3");SI(D124=3D11;NB.SI(FR_A!
AA53:BQ53;"3");SI(D124=3D12;NB.SI(FR_A!
AB53:BQ53;"3");SI(D124=3D13;NB.SI(FR_A!
AC53:BQ53;"3");SI(D124=3D14;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=E8rene la valeure de
3 ... ainsi de suite jusqu'=E0 38.

Dans une cellule F123 je souhaite obtenir le r=E9sultat.

Excel ne me permet d'enchainer autant de si =E0 la suite.

Je cherche =E0 faire une fonction en VB, j'ai essay=E9 avec IF et CountIF
mais je ne connais pas bien le VB et ma syntaxe ne doit pas =EAtre bonne
pouvez vous m'aider ??

D'avance merci !

7 réponses

Avatar
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


a écrit dans le message de
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 !
Avatar
michel.villaume
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" <papyjac(supprimerceci)@free.fr> wrote:
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

a écrit dans le message denews:b758a277-ba5
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 !


Avatar
lSteph
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 !


Avatar
isabelle
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" <papyjac(supprimerceci)@free.fr> wrote:
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

a écrit dans le message denews:
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 !





Avatar
Modeste
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)))
Avatar
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 CountIF
mais je ne connais pas bien le VB et ma syntaxe ne doit pas être bonne
pouvez vous m'aider ??

D'avance merci !





Avatar
michel.villaume
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 wrote:
...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 -