Macro Excel sélection plus grands chiffres
Fermé
Holidays48
Messages postés
1
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
13 décembre 2007
-
13 déc. 2007 à 11:09
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 18 sept. 2010 à 11:39
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 18 sept. 2010 à 11:39
A voir également:
- Macro Excel sélection plus grands chiffres
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Excel trier par ordre croissant chiffre - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
9 réponses
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
13 déc. 2007 à 22:11
13 déc. 2007 à 22:11
Bonsoir,
Tu veux absolument faire une macro ?
Par formule tu peux faire ainsi:
dans 4 cellules en J par exemple tu saisis
J1: =GRANDE.VALEUR($A$1:$A$8;1)
J2: =GRANDE.VALEUR($A$1:$A$8;2)
J3: =GRANDE.VALEUR($A$1:$A$8;3)
J4: =GRANDE.VALEUR($A$1:$A$8;4)
Voilà tes 4 plus grandes valeurs.
A droite tu ecris:
K1: =EQUIV(J1;$A$1:$A$8;0)
K2: =EQUIV(J2;$A$1:$A$8;0)
K3: =EQUIV(J3;$A$1:$A$8;0)
K4: =EQUIV(J4;$A$1:$A$8;0)
Là tu connais leur position (ligne) dans la plage
Et avec index() tu peux recupérer la valeur qui t'interesse dans une autre colonne
L1: =INDEX($A$1:$D$8;K1;3) te retourne la valeur de la 3eme colonne C sur la même ligne que ta 1ère grande valeur.
Pour gagner de la place tu peux ecrire les 2 formules colonne K et L en une seule:
K1: =INDEX($A$1:$D$8;EQUIV(J1;$A$1:$A$8;0);3)
eric
Tu veux absolument faire une macro ?
Par formule tu peux faire ainsi:
dans 4 cellules en J par exemple tu saisis
J1: =GRANDE.VALEUR($A$1:$A$8;1)
J2: =GRANDE.VALEUR($A$1:$A$8;2)
J3: =GRANDE.VALEUR($A$1:$A$8;3)
J4: =GRANDE.VALEUR($A$1:$A$8;4)
Voilà tes 4 plus grandes valeurs.
A droite tu ecris:
K1: =EQUIV(J1;$A$1:$A$8;0)
K2: =EQUIV(J2;$A$1:$A$8;0)
K3: =EQUIV(J3;$A$1:$A$8;0)
K4: =EQUIV(J4;$A$1:$A$8;0)
Là tu connais leur position (ligne) dans la plage
Et avec index() tu peux recupérer la valeur qui t'interesse dans une autre colonne
L1: =INDEX($A$1:$D$8;K1;3) te retourne la valeur de la 3eme colonne C sur la même ligne que ta 1ère grande valeur.
Pour gagner de la place tu peux ecrire les 2 formules colonne K et L en une seule:
K1: =INDEX($A$1:$D$8;EQUIV(J1;$A$1:$A$8;0);3)
eric
Ce sujet m'intéresse fortement donc je relance pour une petit explication:
Je moccupe d'un classement de foot dans une division.
Je veu sortire de la La meilleur attaque et défence du championnats.
Donc la formule : J1: =GRANDE.VALEUR($A$1:$A$8;1)
C'est parfait pour sortir le nombre le plus grand, mais je voudrai sortir a coté le nom de l'équipe automatiquement.
Exemple :
Meilleur attaque : Montpellier : 25
Merci
Je moccupe d'un classement de foot dans une division.
Je veu sortire de la La meilleur attaque et défence du championnats.
Donc la formule : J1: =GRANDE.VALEUR($A$1:$A$8;1)
C'est parfait pour sortir le nombre le plus grand, mais je voudrai sortir a coté le nom de l'équipe automatiquement.
Exemple :
Meilleur attaque : Montpellier : 25
Merci
Oui, dans les grandes lignes, tu as bien compris.
Aujourd'hui, manuellement, je regarde mes chiffres un par un, et je copie les 4 plus grands, que je colle sur une autre feuille du classeur. Puis je reviens sur la première feuille, et je copie le libellé correspondant, que je colle sur l'autre feuille à côté des chiffres. Ensuite je refais la même chose avec les 4 plus petits.
Mais j'ai trouvé cet après midi une astuce pour faire une macro avec les fonctions que je connais. Donc j'ai fait une macro pour sélectionner les cellules qui contiennent les chiffres que je veux analyser (ils sont dans la même colonne, mais je dois exclure des sous-totaux), puis elle les colle à un autre endroit dans la feuille. Idem avec les libellés correspondant. Ensuite elle fait un tri croissant sur cette nouvelle colonne, sélectionne et copie les 4 premiers, les colle sur une autre feuille du classeur, revient sur la première feuille, et fait la même chose avec les libellés. Idem pour les 4 derniers. Ca marche comme ça parce que pour l'instant, il y a toujours le même nombre de chiffres à analyser, donc les 4 derniers sont toujours dans les mêmes cellules dans la colonne triée. Mais ça peut changer, donc il me faudrait vraiment une macro qui dise : parmi ces chiffres, trouve les 4 plus grands (et les 4 plus petits), copie les, et colle les sur une autre feuille.
En espérant avoir été plus claire...
Merci
Aujourd'hui, manuellement, je regarde mes chiffres un par un, et je copie les 4 plus grands, que je colle sur une autre feuille du classeur. Puis je reviens sur la première feuille, et je copie le libellé correspondant, que je colle sur l'autre feuille à côté des chiffres. Ensuite je refais la même chose avec les 4 plus petits.
Mais j'ai trouvé cet après midi une astuce pour faire une macro avec les fonctions que je connais. Donc j'ai fait une macro pour sélectionner les cellules qui contiennent les chiffres que je veux analyser (ils sont dans la même colonne, mais je dois exclure des sous-totaux), puis elle les colle à un autre endroit dans la feuille. Idem avec les libellés correspondant. Ensuite elle fait un tri croissant sur cette nouvelle colonne, sélectionne et copie les 4 premiers, les colle sur une autre feuille du classeur, revient sur la première feuille, et fait la même chose avec les libellés. Idem pour les 4 derniers. Ca marche comme ça parce que pour l'instant, il y a toujours le même nombre de chiffres à analyser, donc les 4 derniers sont toujours dans les mêmes cellules dans la colonne triée. Mais ça peut changer, donc il me faudrait vraiment une macro qui dise : parmi ces chiffres, trouve les 4 plus grands (et les 4 plus petits), copie les, et colle les sur une autre feuille.
En espérant avoir été plus claire...
Merci
nicodoudou
Messages postés
48
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
44
14 déc. 2007 à 10:42
14 déc. 2007 à 10:42
Bonne méthode donnée par Eric...
Cette méthode à l'avantage de ne pas passé par la boite noire Macro
Par contre les formule ne sont pas dynamiques cad si tu veux les dix plus grandes valeurs il faut recopier dix fois la formule
Mais le plus serait peut etre d'utiliser les formules données par Eric mais de les rentrer sur ta feuille via une macro..
Mais si tu veux copier toutes une ligne je pense qu'il faut mieux passer par une macro
A toi de voir
Ce que j'ai compris c'est:
Sur une liste de n lignes je cherche sur une colonne les x plus grandes valeurs
Et je copie dans une feuille "Max" les lignes des x plus grandes valeurs
Et je copie dans une feuille "Min" les lignes des x plus petites valeurs
Si c'est le cas envoie moi ton fichier
nicolas_doulin@yahoo.fr
A+
Cette méthode à l'avantage de ne pas passé par la boite noire Macro
Par contre les formule ne sont pas dynamiques cad si tu veux les dix plus grandes valeurs il faut recopier dix fois la formule
Mais le plus serait peut etre d'utiliser les formules données par Eric mais de les rentrer sur ta feuille via une macro..
Mais si tu veux copier toutes une ligne je pense qu'il faut mieux passer par une macro
A toi de voir
Ce que j'ai compris c'est:
Sur une liste de n lignes je cherche sur une colonne les x plus grandes valeurs
Et je copie dans une feuille "Max" les lignes des x plus grandes valeurs
Et je copie dans une feuille "Min" les lignes des x plus petites valeurs
Si c'est le cas envoie moi ton fichier
nicolas_doulin@yahoo.fr
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nicodoudou
Messages postés
48
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
44
13 déc. 2007 à 17:44
13 déc. 2007 à 17:44
Compliqué ta description à la lire j'ai du mal à comprendre
Si j'ai compris sur une colonne tu veux trouver les x plus grands nombres, et il faut transférer ces lignes dans une feuille Excel???
Aujourd'hui comment fais tu manuellement pour faire cela??
A+
Nicolas
Si j'ai compris sur une colonne tu veux trouver les x plus grands nombres, et il faut transférer ces lignes dans une feuille Excel???
Aujourd'hui comment fais tu manuellement pour faire cela??
A+
Nicolas
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
14 déc. 2007 à 11:46
14 déc. 2007 à 11:46
Pour ce qui est de la valeur 1,2,3,4 on peut la rendre dynamique.
Si la 1ère formule est saisie sur la ligne 1 remplacer 1 par LIGNE() et recopier vers le bas.
En 2nde ligne LIGNE() retournera 2 etc
Je n'avais pas jugé utile de le mettre pour 4 valeurs...
J'ai oublié de le dire mais oui, pour la 2ème partie on fait pareil mais avec PETITE.VALEUR()
eric
Si la 1ère formule est saisie sur la ligne 1 remplacer 1 par LIGNE() et recopier vers le bas.
En 2nde ligne LIGNE() retournera 2 etc
Je n'avais pas jugé utile de le mettre pour 4 valeurs...
J'ai oublié de le dire mais oui, pour la 2ème partie on fait pareil mais avec PETITE.VALEUR()
eric
nicodoudou
Messages postés
48
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
20 mars 2008
44
14 déc. 2007 à 11:50
14 déc. 2007 à 11:50
C'est vrai mais par expérience le problème avec une formule c'est que cela s'efface facilement alors qu'une formule mise par une macro c béton
A l'utilisatrice de choisir...
A+
PS: Eric cela fait plusieurs fois que je te vois sur les mêmes sujets que moi!!! Que fais tu exactement?? si tu veux me contacter en direct nicolas_doulin@yahoo.fr
A l'utilisatrice de choisir...
A+
PS: Eric cela fait plusieurs fois que je te vois sur les mêmes sujets que moi!!! Que fais tu exactement?? si tu veux me contacter en direct nicolas_doulin@yahoo.fr
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
25 juin 2009 à 18:10
25 juin 2009 à 18:10
Bonjour,
en lisant le post 3 intégralement tu as ta réponse.
equiv() te permet de trouver en quelle ligne est ta grande.valeur
index() te permet de ramener le contenu de la ligne voulue dans n'importe quelle colonne.
Si tu n'y arrives pas il faudra déposer un exemple de ton fichier (cijoint.fr et coller ici le lien fourni) car tout dépend de ta feuille.
eric
en lisant le post 3 intégralement tu as ta réponse.
equiv() te permet de trouver en quelle ligne est ta grande.valeur
index() te permet de ramener le contenu de la ligne voulue dans n'importe quelle colonne.
Si tu n'y arrives pas il faudra déposer un exemple de ton fichier (cijoint.fr et coller ici le lien fourni) car tout dépend de ta feuille.
eric
Bonjour,
Merci à toi eriic pour tes explications !!!
J'utilise actuellement la méthode que tu as donné avec les "=Grande.valeur" et "=INDEX($A$1:$D$8;EQUIV(J1;$A$1:$A$8;0);3)".
Puis j'utilise une formule "RechercheV() " afin de compléter toutes les information sur ma ligne.
Mais je me heurte à un pb. Comme j'ai plusieurs fois la même "Grande valeur" sur différentes lignes, la rechercheV m'indique toujours les même information (celle de la 1ere Grande.valeur.
Aurais-tu une solution
Merci d'avance
Merci à toi eriic pour tes explications !!!
J'utilise actuellement la méthode que tu as donné avec les "=Grande.valeur" et "=INDEX($A$1:$D$8;EQUIV(J1;$A$1:$A$8;0);3)".
Puis j'utilise une formule "RechercheV() " afin de compléter toutes les information sur ma ligne.
Mais je me heurte à un pb. Comme j'ai plusieurs fois la même "Grande valeur" sur différentes lignes, la rechercheV m'indique toujours les même information (celle de la 1ere Grande.valeur.
Aurais-tu une solution
Merci d'avance
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
23 août 2010 à 15:56
23 août 2010 à 15:56
Bonjour,
J'ai éventuellement une petite idée mais il faudrait un extrait de ton tableau pour voir si ça pourrait s'appliquer.
Dépose-le sur cijoint.fr et colle ici le lien fourni
eric
J'ai éventuellement une petite idée mais il faudrait un extrait de ton tableau pour voir si ça pourrait s'appliquer.
Dépose-le sur cijoint.fr et colle ici le lien fourni
eric
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
18 sept. 2010 à 11:39
18 sept. 2010 à 11:39
Bonjour,
Heuuuu, poste toujours, mais depuis le temps je l'ai oubliée mon idée...
eric
Heuuuu, poste toujours, mais depuis le temps je l'ai oubliée mon idée...
eric
11 mars 2008 à 20:42
C'est avec grand intérêt que j'ai trouvé une partie d'une de mes préoccupations du moment. J'ai bien saisi les formules avec EQUIV, GRANDE.VALEUR et avec INDEX , j’ai par contre rencontré un problème, quand 2 valeurs sont identiques INDEX ou EQUIV marque la même valeur, en l’occurrence, la première rencontrée dans les cellules.
Peux tu m’expliquer comment remédier à ce problème. Merci d’avance
11 mars 2008 à 21:05
peut--être que ton pb n'est pas exactement le même.
Là le but était de récupérer les 4 + grandes valeurs, les doublons ne genaient pas, qu'un 5 vienne de la 12 ou 15 ligne ça reste toujours un 5
Le mieux est de démarrer une nouvelle discussion en exposant bien ton pb.
eric
12 mars 2008 à 20:44
29 déc. 2008 à 19:15
J'ai le même problème que vous concernant les doublons,
auriez-vous trouvé la solution ?
cela fait plusieurs heures que je cherche sans succés...
Merci d'avance pour votre aide