![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: septembre 2005
Messages: 45
|
Bonjour à tous,
Je suis débutant en VBA et j'aurai voulu savoir comment faire pour q'une macro retourne les 6 plus grandes valeurs d'une colonne et me renvoie pour ces 6 valeurs la valeur de la cellule qui est 23 colonnes avant celles-ci sur la même ligne (vlookup à l'envers). J'ai essayé les fonctions excel 'large', 'vlookup' d'excel et 'find' de VBA. Je n'ai pas un résultat satisfaisant. Je suis débutant et je ne sais pas encore quand dois-je utiliser des macros et quand dois-je me servir de formules excel. Pour info, la fonction 'large' ou 'grande valeur' en français ne fonctionne pas puisque j'ai des cellules 'erreur' dans la colonne à analyser. Dès que quelqu'un a le temps.... Merci Beaucoup. Olivier |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 432
|
bonjour skoblar, le forum
Je pense que ceci doit etre possible par formule, mais mon niveau très bas en ce domaine m'interdit de faire une proposition formuliste. Je te propose donc en pièce jointe une macro. A savoir que si les données à renvoyer, sont toujours dans la meme colonne, il serait souhaitable de toujours faire référence à celle-ci dans la macro au lieu d'utiliser offset parfois hasardeux; salut [file name=Classeur6_20050914144253.zip size=8204]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur6_20050914144253.zip[/file] |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 432
|
re skoblar
Je sais que c'est un peu compliqué, mais ton souci n'etait pas simple non plus Si je trouve plus simple, je reviendrai à toi. En attendant le meme classeur mais avec quelques commentaires pour la macro. salut [file name=Classeur6v2.zip size=8802]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur6v2.zip[/file] |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Brieuc
Version Excel : Excel XP (PC)
Messages: 5 673
|
Bonjour,
Par formule, avec ou sans ex aequo [file name=GrandeValeurSkoblar.zip size=5211]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/GrandeValeurSkoblar.zip[/file] |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Brieuc
Version Excel : Excel XP (PC)
Messages: 5 673
|
Re,
La même chose, mais avec des valeurs du genre #N/A dans la plage des nombres [file name=GrandeValeurSkoblarV1.zip size=5334]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/GrandeValeurSkoblarV1.zip[/file] Message édité par: monique, à: 14/09/2005 16:07 |
|
|
|
|
|
#7 (permalink) |
|
Guest
Messages: n/a
|
Merci beaucoup Monique, cela fonctionne presque correctement.
J'ai même réussi à comprendre toutes ces formule imbriquées. Cependant, j'ai deux trucs qui me chagrinent : - le deuxième fichier que tu as posté réussi à donner une réponse lorsque la plage contient des DIV/0 et des N/A mais la mienne comporte également des # Value ! et donc cela ne marche pas, j'ai testé sans ces erreurs la formule fonctionne, aurais-tu un truc pour ça ? peut etre un 'esterreur' ou quelque chose comme ça ? - j'ai decomposé cette formule et il y a un mystère, la formule 'large' toute seule donne un resultat correct, la formule MATCH + LARGE me donne un numero de ligne erroné (beaucoup plus bas) et finalement le tout avec la formule INDEX me renvoi l'élément juste Tu peux m'expliquer cela sinon je sais pas si je dormirai ce soir. Merci. Biz Olivier |
|
|
|
#8 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Brieuc
Version Excel : Excel XP (PC)
Messages: 5 673
|
Re,
La fonction ESTNUM() marche bien avec tout ça : #DIV/0! #NOM? #N/A #VALEUR! #REF! Tu as une autre formule avec NON(ESTERREUR()) Sinon, la formule sans Index() te renvoie le n° de ligne, (me renvoie, en tout cas) il s'agit du n° de ligne du tableur, pas le n° de ligne à l'intérieur d'une plage, d'un tableau Index(A1:A100; n°) part de A1, justement parce qu'il s'agit d'un n° de ligne de la fonction Ligne() Pas besoin de laisse A1 vide, en fin de compte [file name=GrandeValeurSkoblarV2.zip size=6490]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/GrandeValeurSkoblarV2.zip[/file] |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|