Nb.si again ?

Viam

XLDnaute Nouveau
Bonjour,

J'ai regardé quelques sujets sur le forum et... J'ai vue quelques formules, mais je n'arrive pas à soit les comprendre, soit les adapter. Du coup, j'aurais besoin d'un coup de main pour me permettre de résoudre ceci.

-J'ai un classeur excell dans lequel j'ai l'intention d'ouvrir plusieurs fiches avec des noms de personnes différentes. Toute les fiches sont monté de la même façon. En fait, j'ai fait mon modèle et je l'ai ensuite copier coller. Je me suis fait une feuille de calcule dans laquelle je veux cumuler des statistiques et à partir de laquelle je monterai des graphiques. Mais voilà, je n'arrive pas à cumulé les stats que je veux...

- Mon soucis vient du fait suivant : J'ai monter un menu déroulant pour mes villes (dans l'exemple : Montréal, Québec, chibougamau, bout du monde, etc.). J'ai tenté la formule nb.si, mais elle ne fonctionne pas. J'ai compris qu'elle fonctionnait dans sa forme actuelle que quand elle est seulement dans une seule feuille.

Du coup, entre la feuille test et test2, comment je fais pour savoir le nombre de fois que peux apparaître la ville de québec, quand cette dernière est sélectionné à partir du menu déroulant ? Prendre note que je demande le calcule entre ces deux feuilles parce que j'ajouterais d'autres noms entre ces deux feuilles.

Merci à l'avance et bonne journée :)
 

Pièces jointes

  • test.xlsm
    160 KB · Affichages: 26
  • test.xlsm
    160 KB · Affichages: 37
  • test.xlsm
    160 KB · Affichages: 34

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Nb.si again ?

Bonjour Viam et bienvenue sur XLD,

On peut utiliser une fonction personnalisée (dans module3) :
VB:
Function TotalVille(xVille)
Dim xwsh As Worksheet, i As Long
  Application.Volatile
  For i = Worksheets("Test").Index + 1 To Worksheets("Teste2").Index - 1
    If Worksheets(i).Range("C17") = xVille Then TotalVille = TotalVille + 1
  Next i
  If TotalVille = 0 Then TotalVille = vbNullString
End Function

Nota : la fonction ne prend en compte ni la feuille "Test", ni la feuille "Teste2". Si vous désirez les prendre en compte, effacez le +1 et le -1 de la ligne "For i = worksh ... "

Edit : bonsoir Lolote83
 

Pièces jointes

  • Viam-Comptage sur plusieurs onglets-v1.xlsm
    163.9 KB · Affichages: 20
Dernière édition:

Viam

XLDnaute Nouveau
Re : Nb.si again ?

Merci pour vos deux réponses :)

@Lolote83

J'ai déjà vue cette réponse mais voilà, cette formule ne marche pas une fois qu'elle est copier dans le bon document... Celui que j'ai joint à ce post est pourtant similaire (exception fait de une ou deux feuilles après la feuille test 2). De là pourquoi j'étais venu posté ici... Mais j'imagine que cela doit fonctionner vue que je l'ai vue plusieurs fois. Je comprend juste pas comment... :mad:

@Mapomme

Merci, la macro fonctionne bien. Cependant, quand j'ai écrit, j'avais en tête une formule qui aurait pu s'appliquer ailleurs dans la feuille, car je dois comptabiliser diverse chose comme : Raisons, référé par, etc.. Du coup, au niveau de la macro, qu'est-ce que je dois changé ?

- La cellule de référence ici, C17 la bonne cellule ? (E24 pour l'exemple)
- Le terme dans "function" : TotalVille(xVille) pour TotalRaison(xraison)
- Les termes "If": TotalRaison et TotalRaison

Ce qui donnerait quelque chose comme :

Code:
Function TotalRaison(xVille)
Dim xwsh As Worksheet, i As Long
  Application.Volatile
  For i = Worksheets("Test").Index + 1 To Worksheets("Teste2").Index - 1
    If Worksheets(i).Range("E24") = xVille Then TotalRaison = TotalRaison + 1
  Next i
  If TotalRaison = 0 Then TotalRaison = vbNullString
End Function

Je copie ensuite dans un autre module

Ce qui pourra me permettre de taper cette demande : =totalraison() ?

Ou bien, je pourrais mettre une serie de cellule dans le range ? Au fond, la demande =totalville() n'est pas contraignante même si elle ne s'applique pas qu'aux villes.
 

Lolote83

XLDnaute Barbatruc
Re : Nb.si again ?

Salut VIAM,
Tu écrits
J'ai déjà vue cette réponse mais voilà, cette formule ne marche pas une fois qu'elle est copier dans le bon document...
Que se passe-t-il exactement ?
Si dans la liste des onglets à prendre en compte (H3:H7) dans mon exemple, il faut que l'orthographe exact des onglets soit OK sinon #REF!
Peut être est-ce de ce coté qu'il faut chercher ??? Par contre, j'ai défini un nom à cette plage de cellule comme il est indiqué dans mon fichier. Si tu viens à rajouter des onglets, refaire la définition ou la rendre dynamique. Chose que je n'ai pas faite par souci de rapidité.
Tiens moi au courant....
@+ Lolote83
 

Viam

XLDnaute Nouveau
Re : Nb.si again ?

Bonjour Lolote83,

Et bien, si tu prend mon document et que tu y colles ta formules, cela ne marchera pas. Je viens aussi de remarquer qu'ils... ... Haaa... Je viens de comprendre ! Je crois du moins. En fait, dans mon exemple, il n'y a pas de "compilation" nd et du coup pas de référence de fait. Du moins, j'imagine que c'est ça le problème. Donc, ma question est donc la suivante :

- Comment je fais cette compilation ? En d'autres mots, cette référence Feuille ND
- Peut-elle être faire sur une autre feuille que celle de la formule ? Exemple, puis-je utilisé mes mes référence de liste déroulante pour cela ? Ou bien l'idéal serait sur la même feuille ?

En même temps, bien que je sois autonome pour faire ce type de chose après l'avoir appris, je ne suis pas sûr que la personne qui travaillera sur le document le soit. N'est-il pas possible de faire cela sans avoir à ajouter les noms ? Parce qu'en bout de ligne, on parle d'une liste de nom qui sera souvent modifié (ajout, départ, etc.).

Merci à l'avance pour ces réponses.
 

Lolote83

XLDnaute Barbatruc
Re : Nb.si again ?

Salut VIAM, MaPomme,

Après maintes recherches, voici ce que je viens de sortir de mon chapeau.
Il n'est plus nécessaire de saisir le nom des onglets, la formule données dans la définition du nom ND_NO permet cela.
Informations prises et adaptées sur le site donné dans le fichier joint.

Cordialement
Lolote83
 

Pièces jointes

  • Copie de VIAM - NBSI sur plusieurs feuilles-V3.xlsm
    170.5 KB · Affichages: 15

Viam

XLDnaute Nouveau
Re : Nb.si again ?

Cool !

Sa marche :D

Maintenant, j'ai pas tout compris, mais rapidement juste pour être sur : j'imagine que l'information comprise dans la bulle explique le pourquoi la formule fonctione. En d'autres mot, ton : "'"&ND_NO&"' dans ta formule
Code:
=SOMMEPROD(NB.SI(INDIRECT("'"&ND_NO&"'!C17");$A4))
est déjà prédéfinit dans excell par la formule suivante
Code:
=STXT(LIRE.CLASSEUR(1);TROUVE("]";LIRE.CLASSEUR(1))+1;99)&INDIRECT("iv65000")
, ce qui évite de devoir faire la plage de donné. J'ai bien saisit l'info ?

Dans tout les cas de figure, merci pour la formule. Sa me donne un sapré bon coup de main ! :D
 

Viam

XLDnaute Nouveau
Re : Nb.si again ?

Après observation, j'ai remarqué qu'un ND_NO avait été créé dans la section zone de référence, du moins, sous 2013.

Qu'importe, mon autre question en rapport avec ce sujet serait de savoir si je peux ajouter plus d'une cellule de référence ?

Exemple, dans la formule suivante :
=SOMMEPROD(NB.SI(INDIRECT("'"&ND_NO&"'!C17");$A4))

C17 est la cellule de référence. Mais voilà, j'ai plusieurs numéros de téléphone possible et j'ai comptabiliser chaque fois qu'un choix sera fait (père, mère, proche, etc). Un total de quatre cellule est alors nécessaire. J'imagine que je dois mettre un point virgule ou quelque chose de la sorte non ?

Merci à l'avance.
 

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel