![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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)) 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 !
|
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: avril 2005
Localisation: MONTARGIS (la Venise du Gâtinais)
Version Excel : Excel 2003 (PC)
Messages: 2 024
|
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 ...
|
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Accro
Date d'inscription: septembre 2007
Messages: 1 222
|
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
Formation Excel VBA JB |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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 !
|
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Accro
Date d'inscription: mai 2007
Localisation: Challans
Version Excel : Excel XP (PC)
Messages: 1 036
|
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
__________________
vive la charte XLD: http://www.excel-downloads.com/forum...de-poster.html Ye He Mad! |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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 B7Autre 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. |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Accro
Date d'inscription: septembre 2007
Messages: 1 222
|
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
|
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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 !
|
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: décembre 2007
Messages: 957
|
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 |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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))) 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))) Bon dimanche a tous
__________________
Bonne journée à tous ![]() La connaissance, c'est comme la confiture, moins on en a, plus on l'étale !
|
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Localisation: Maubeuge
Version Excel : Excel 2000 (PC)
Messages: 6 005
|
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 XldiennesXLD vous a aidé, n'hésitez pas à aider XLD |
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: décembre 2007
Messages: 168
|
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 !
|
|
|
|
|
|
#15 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: mars 2005
Localisation: Maubeuge
Version Excel : Excel 2000 (PC)
Messages: 6 005
|
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 XldiennesXLD vous a aidé, n'hésitez pas à aider XLD |
|
|
|
| ANNONCES | |
![]() |
| Outils de la discussion | |
|
|
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 |