Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel > Nbsi multi plages
Vous inscrire
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus


Réponse
 
LinkBack Outils de la discussion
Vieux 10/05/2008, 18h19   #1 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Question Nbsi multi plages

Bonjour a tous.
De retour de vacances je me replonge dans mes travaux
Voila; je cherche a faire avec =NBSI() un choix de plusieurs plages ex:
Code:
 =SI(D24<=D57;NBSI(E2:I9;23);NBSI(E2:I8;23))
Cela marche mais le choix de plage est restreint .
Comment faire varier la taille de plage avec =nbsi() ici avec ("..." 23)
Comment faire une formule plus élégante ?
Si vous avez une idée ?
Merci d'avance
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
ANNONCES
Vieux 10/05/2008, 18h24   #2 (permalink)
BrunoM45
XLDnaute Barbatruc
 
Avatar de BrunoM45
 
Date d'inscription: avril 2005
Localisation: MONTARGIS (la Venise du Gâtinais)
Version Excel : Excel 2003 (PC)
Messages: 2 024
Lightbulb Re : Nbsi multi plages

Salut Jimy,

Faut pas partir en vacances, c'est mauvais pour les posts sur le forum

Un petit fichier d'exemple de ce que tu veux faire, serait le bien venu !

A+
__________________
Cordi@lement.

La politesse est comme le zéro, qui, sans avoir de valeur en soi, en ajoute à toutes choses.

VBA, vous ne savez pas comment faire ... Pensez à l'enregistreur de macro !
Menu -> Outils -> Macro -> Nouvelle macro

Si vous souhaitez rejoindre le club des Supporters d'XLD ... c'est ICI

Petite citation : C'est en XLDant que l'on devient XLDnaute Barbatruc ...
BrunoM45 est déconnecté   Réponse avec citation
Vieux 10/05/2008, 18h40   #3 (permalink)
BOISGONTIER
XLDnaute Accro
 
Date d'inscription: septembre 2007
Messages: 1 222
Par défaut Re : Nbsi multi plages

Bonjour,


Code:
Function NbSiMZ(champrech As Range, valCherchée)
  Application.Volatile
  temp = 0  
  For i = 1 To champrech.Areas.Count
    For j = 1 To champrech.Areas(i).Count
      If valCherchée = champrech.Areas(i)(j) Then
        temp = temp + 1
      End If
    Next j
  Next i
  NbSiMZ = temp
End Function
JB
Formation Excel VBA JB
Fichiers attachés
Type de fichier : xls FonctionNbSiMZx.xls (38,5 Ko, 17 affichages)
BOISGONTIER est déconnecté   Réponse avec citation
Vieux 10/05/2008, 18h46   #4 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Smile Re : Nbsi multi plages

Re
Woaw ! quelle rapidité !
je joins un ptit fichier
merci
Fichiers attachés
Type de fichier : xls Nbsi Variable.xls (18,5 Ko, 17 affichages)
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
Vieux 10/05/2008, 18h54   #5 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Smile Re : Nbsi multi plages

Rebonjour
merci BOISGONTIER !
Nos messages se sont croisé.
Je ne connaissais pas cette formule
Question, il est nécessaire de la faire fonctionner avec VBA ?
Parce qu'en la tapant elle me renvoie #NOM?
merci de ton aide
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
Vieux 10/05/2008, 19h01   #6 (permalink)
Hasco
XLDnaute Accro
 
Avatar de Hasco
 
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 036
Par défaut Re : Nbsi multi plages

bonjour Jimy,
bonjour tout le monde

Voici deux solutions possibles (si j'ai bien compris le problème)

La première avec la fonction Indirect
La deuxième avec la fonction Décaler

A bientôt
Fichiers attachés
Type de fichier : xls Nbsi Variable.xls (29,0 Ko, 16 affichages)
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html

Ye He Mad!
Hasco est déconnecté   Réponse avec citation
Vieux 10/05/2008, 19h07   #7 (permalink)
BOISGONTIER
XLDnaute Accro
 
Date d'inscription: septembre 2007
Messages: 1 222
Par défaut Re : Nbsi multi plages

Cette fonction est une fonction personnalisée:

=SI(D24<=D55;NBSIMZ((E2:E11;G2:G11;I2:I11);23))

On peut également créer un nom de champ multi-zones.

JB
Fichiers attachés
Type de fichier : xls NbsiVariable.xls (33,5 Ko, 14 affichages)
BOISGONTIER est déconnecté   Réponse avec citation
Vieux 11/05/2008, 06h11   #8 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Smile Re : Nbsi multi plages

Bonjour a tous
Et merci de votre aide.
Alors, j'ai essayé dans mon tableau de transposer le code que tu m'as donné (JB)
Mais il me renvoie erreur de compilation et toujours #NOM? qui s'affiche dans cellule B7
Autre question est on obligé de procéder avec des colonnes ou peut on étendre a une plage ( avec NbsiMZ() ) ? ( Définir un nom est encore la meilleure solution finalement )
Merci aussi a toi Hasco, pour ton aide, la solution DECALER est interessante, mais cela impose encore une cellule supplémentaire (remarques, je peux aussi mettre ces cellules dans une feuille que je crée ) parce que la feuille utilisée est déja bien chargée
en tout cas merci a tous ( on se croirait aux remises des awards )
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !

Dernière modification par Jimy 11/05/2008 à 06h46.
Jimy est déconnecté   Réponse avec citation
Vieux 11/05/2008, 06h50   #9 (permalink)
BOISGONTIER
XLDnaute Accro
 
Date d'inscription: septembre 2007
Messages: 1 222
Par défaut Re : Nbsi multi plages

Bonjour,

>Mais il me renvoie erreur de compilation et toujours #NOM? qui s'affiche dans cellule B7

Il faut insérer la fonction dans un module: Alt+F11 et Insertion/Module

Code:
Function NbSiMZ(champrech As Range, valCherchée)
  Application.Volatile
  temp = 0  
  For i = 1 To champrech.Areas.Count
    For j = 1 To champrech.Areas(i).Count
      If valCherchée = champrech.Areas(i)(j) Then
        temp = temp + 1
      End If
    Next j
  Next i
  NbSiMZ = temp
End Function
JB
BOISGONTIER est déconnecté   Réponse avec citation
Vieux 11/05/2008, 08h42   #10 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Cool Re : Nbsi multi plages

Re bonjour
Oui cela fonctionne maintenant
Mais il faut quand même un =SI() pour qu'il déclenche la variation de plages.
et en fait pour bien faire il me faudrait 3 plages de tailles différentes.
Une si D24 est plus petit que D55, la deuxième si D24 est plus grand et une troisième si D24 est plus grand que D56.
Comme je te disais tous ça alourdit la formule ! et ce n'est pas tout, parce qu'il faut appliquer le travail a 6 cellules ouf ! tu vois le boulot ?
Et ceci pour une valeur, alors imagines pour 40 valeurs lol !!
Je n'ai pas fini de taper les formules mdr !
enfin merci pour ton aide
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
Vieux 11/05/2008, 09h33   #11 (permalink)
abcd
XLDnaute Impliqué
 
Date d'inscription: décembre 2007
Messages: 957
Par défaut Re : Nbsi multi plages

Bonjour,

D'après ce que je comprends de la formule sous le premier message, il s'agit d'un NB.SI sur une plage de taille variable suivant condition : E2:I9 et E2:I8

Si c'est le cas ce devrait être faisable avec un DECALER et peut-être un petit tableau de correspondances.

Peux-tu mettre un exemple concret en pièce jointe, avec les résultats que tu souhaites obtenir ?

abcd
abcd est déconnecté   Réponse avec citation
Vieux 11/05/2008, 09h48   #12 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Post Re : Nbsi multi plages

Re
Ben ce n'est pas compliqué, il suffit de rajouter une plage plus grande ( E2:I10 ) a la formule:
Code:
 =SI(D24<=10,5;NB.SI(E2:I8;23);SI(D24<=11,5;NB.SI(E2:I9;23);NB.SI(E2:I10;23)))
J'ai simplifié en mettant la valeur a la place de la cellule D55 et D56
En nommant les plages, cela ferait:
Code:
=SI(D24<=10,5;NB.SI(Zone1;23);SI(D24<=11,5;NB.SI(Zone2;23);NB.SI(Zone3;23)))
Mais cela n'allège pas grand chose.
Bon dimanche a tous
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
Vieux 11/05/2008, 09h54   #13 (permalink)
Tibo
XLDnaute Barbatruc
 
Avatar de Tibo
 
Date d'inscription: mars 2005
Localisation: Maubeuge
Version Excel : Excel 2000 (PC)
Messages: 6 005
Par défaut Re : Nbsi multi plages

Bonjour,

J'ai un peu suivi le fil et j'ai bien compris qu'il y avait des plages de taille différente.

Mais comment sont définies ces plages de taille différente ?

Par exemple, dans la dernière formule que tu proposes, à quelles cellules correspondent les Zone1, Zone2 et Zone3 ?

Et de combien de zones auras-tu besoin et en fonction de quels tests ?

C'est sans doute simple pour toi, car tu sais de quoi tu parles, mais un peu (beaucoup) moins pour moi.

A te (re)lire avec plus de précisions

@+
__________________
Ne jamais hésiter à utiliser la recherche sur le Forum, beaucoup de réponses s'y trouvent
Amitiés Xldiennes
XLD vous a aidé, n'hésitez pas à aider XLD
Tibo est déconnecté   Réponse avec citation
Vieux 11/05/2008, 10h05   #14 (permalink)
Jimy
XLDnaute Occasionel
 
Avatar de Jimy
 
Date d'inscription: décembre 2007
Messages: 168
Post Re : Nbsi multi plages

Bonjour Tibo
Oui, c'est vrai, je t'explique:
1* La taille des plages est définie par le rapport des cellules D24 et D55
2* La est le plus gros problème; il faut 6 fois ces 3 zones ( 6 est la Taille de "n" mon échantillon )
3* les Zones 1, 2 et 3 ne correspondent pas a des cellules mais aux plages ( regardes les 2 formules dans mon dernier post: Zonne 1 correspond à E2:I8 )
J'espère avoir répondu a ta question ?
__________________
Bonne journée à tous


La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
Jimy est déconnecté   Réponse avec citation
Vieux 11/05/2008, 10h26   #15 (permalink)
Tibo
XLDnaute Barbatruc
 
Avatar de Tibo
 
Date d'inscription: mars 2005
Localisation: Maubeuge
Version Excel : Excel 2000 (PC)
Messages: 6 005
Par défaut Re : Nbsi multi plages

re,

Pourrais-tu nous mettre plusieurs exemples ?

En fonction du contenu de D24 et D55, quelle devrait être la taille des différentes plages (car je n'ai pas trop compris ce que veut dire "le rapport des cellules D24 et D55")

Pour D24 et D55 = x, alors la taille de la plage de cellules est .....
Pour D24 et D55 = y, alors la taille de la plage de cellules est .....
Pour D24 et D55 = z, alors la taille de la plage de cellules est .....

etc

A te (re)lire

@+
__________________
Ne jamais hésiter à utiliser la recherche sur le Forum, beaucoup de réponses s'y trouvent
Amitiés Xldiennes
XLD vous a aidé, n'hésitez pas à aider XLD
Tibo est déconnecté   Réponse avec citation
ANNONCES
Réponse



Outils de la discussion

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Multi-recherche multi conditions (challenge) j.torrents Forum Excel 3 19/02/2008 19h36
Multi Tache - Multi Processus - Multi thread MikeB Forum Excel 0 13/12/2006 13h52
pb nbsi sandrine Forum Excel 5 13/06/2006 16h35
total multi feuilles +multi condition Luc Forum Excel 5 15/04/2006 13h36
Listbox multi colonnes multi sélections Gipéhel Forum Excel 5 13/02/2006 16h09


Fuseau horaire GMT +2. Il est actuellement 01h08.


(C) 2006 Excel Downloads