Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Quelqu'un pourrait-il m'aider à rechercher la cotisation que doit payer le membre, sachant que le nom peut apparaitre 2 fois (la 2 fois il y a un "1" derrière le prénom , si il est du comité c'est gratuit, même si il est élève.
Si il est moniteur ou aide-moniteur il payera 30 €, même si il est élève.
le prix de la cotisation se trouve "cate".
Je ne sais pas comment je peux faire, car pour moi il faut un tri des noms, prénoms, et adresses.
Cela est-il possible avec une macro.
voici un exemple j'espère que j'ai bien résumer le problème.
Trois questions :
* Est-ce que dans ton vrai fichier tu as un 1 à la fin des prénoms correspondant aux doublons ?
* Est-ce que tu peux avoir plus de deux lignes pour la même personne, par ex, Admer Jacques, Admer Jacques1 et encore une fois Admer jacques1 ?
* Est-ce que la colonne des dates de naissance est complètement renseignée ?
Une possibilité en pièce jointe qui ne fonctionne bien (je l'espère) que si tu n'as au max que deux lignes par personne, ex Michel et Michel1 (peu importe l'ordre). Valable pour un tableau allant jusqu'à la ligne 150 au max.
J'ai défini les noms suivants dans le gestionnaire :
fam=SOMMEPROD(($C2=$C$1:$C$150)*(DROITE($E$1:$E$150;1)<>"1")*($G2=$G$1:$G$150)*($H2=$H$1:$H$150)) qui donne le nbre de personnes de la famille inscrites dans le club.
et d'autres plus simples
colgrade = bdonnees!$M$1:$M$150
listegrade = {"comité";"moniteur";"aide-moniteur";"élève"}
EQUIV(M2;listegrade;0) donne la position du grade dans la liste {"comité";"moniteur";"aide-moniteur";"élève"}
EQUIV(INDEX(colgrade;positionprénom1);listegrade;0) donnerait le grade correspondant au nom+prénom en cour avec un 1 en plus à la fin mais comme il ni y a pas forcément de nom+prénom avec un 1 en plus à la fin, il faut faire avec EQUIV(SIERREUR(INDEX(colgrade;positionprénom1);M2);listegrade;0)
Le prénom en cours a peut être déjà un 1 à la fin, il faut donc faire une recherche de la ligne, du grade sans ce 1 à la fin du prénom, ce qui donne EQUIV(SIERREUR(INDEX(colgrade;positionprénomsans1);M2);listegrade;0)).
Je ne veux pas ces 3 positions, mais la plus petite des trois, d'où le MIN initiale, la liste des grades étant classée dans l'ordre croissant des cotisations : quelqu'un du comité payant moins (cate!G$7) qu'un moniteur qui paye pareil qu'un aide-moniteur (cate!G$5) qui lui même paye moins qu'un élève. Dans ce dernier cas, il faut tenir compte du nombre de personnes de la famille inscrites, donné par fam. On utilise donc
Code:
CHOISIR(MIN(fam;3);cate!H$1;cate!H$2;cate!H$3)
Min(fam;3) puisqu'il ni y a pas de tarif spécial pour 4, 5 et plus de personnes.
Une personne paye 80 €
Deux personnes payent chacune (80+70)/2 = 75 €
Trois personnes payent chacune (80+70+60)/3 = 60 €.
Pour cette dernière partie, j'ai préféré adopter cette méthode, mettre pour chaque personne de la famille, la somme moyenne à payer, plutôt que la somme la plus importante pour le premier membre de la famille sur la liste, un peu moins pour la seconde, et ainsi de suite. dans ce dernier cas, il aurait fallu aussi mettre dans la formule une partie repérant la position dans la liste par rapport à la famille. Pas très compliqué, mais donnant une formule encore plus grande.
Ce qui rend la formule longue, c'est le fait de devoir travailler avec le prénom, soit sans le 1 à la fin, soit tel que, et avec un 1 en plus.
Autrement dit, tu peux avoir certaine fois 3 lignes pour la même personne, par ex Jean Grileau, Jean Grileau1 et Jean Grileau2. Dans ce cas, ma proposition ne fonctionnera pas systématiquement correctement, en fonction du grade correspondant à Jean Grileau2. Je vais modifier mon fichier en conséquence.
En attendant, regarde si ma précédente proposition convient pour les personnes n'ayant qu'une ou deux lignes dans ton fichier.
J'ai modifié dans le dernier fichier la formule donnant fam, le nombre de membres de la famille incrits dans le club, pour ne pas prendre en compte les lignes contenant un prénom finissant par 2.
Une autre possibilité qui fonctionne avec des prénoms sans chiffre à la fin. Pour mettre en évidence les doublons, j'ai mis une macro, GroupColor3CritèresNomPrénomDatedenaissance() (à relancer à chaque changement (au besoin, rajouter un bouton ou un raccourci clavier)), (macro faite à partir d'une proposition de J. Boisgontier, disponible là (Doublons 2 critères)).
@ plus
P.S : Modification de la définition du nom fam le 19/04
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.