Macro - fonction Recherche
row_win
Messages postés
43
Statut
Membre
-
row_win Messages postés 43 Statut Membre -
row_win Messages postés 43 Statut Membre -
Bonjour à tous et à toutes,
Je travaille en ce moment sur la comparaisons de feuilles Excel. Le problème est que la fonction =recherche(x;y;z) d'Excel est devenue complètement pourrite car les références que je souhaite comparer sont compasées à la fois de chiffres et de lettres (et ça semble poser problème à la vue des résultats qu'il m'affiche^^).
Bref, j'ai cherché longtemps avant de me résigner à poster un nouveau message. Je souhaite écrire une macro qui recherche les références de la colonne A, dans la colonne B, et qui affiche ces numéros dans la colonne C.
Petite précision: le must serait d'utiliser le même principe que la fonction Ctrl+F, puisque les références de la colonnes A sont souvent plus "fournies" que celles de la colonne B (où s'effectue la recherche): il y a souvent des préfixes aux références.
J'espère avoir été le plus clair possible :/
Exemple:
Sur m'a premiere feuille j'ai:
Référence: Date:
0029PJ36T39 01/01/2001
0029FE574G6 29/05/2006
Et sur ma deuxième feuille:
Référence: Quantité:
PJ36T39 3256
FE574G6 24
J'aimerai donc afficher les infos de la colonne Quantité sur la feuille 1
Etant donné qu'il y a un bon millie de ligne, je vous remercie énormément de vos réponses, par avance!
Configuration: Windows XP
Internet Explorer 6.0
Je travaille en ce moment sur la comparaisons de feuilles Excel. Le problème est que la fonction =recherche(x;y;z) d'Excel est devenue complètement pourrite car les références que je souhaite comparer sont compasées à la fois de chiffres et de lettres (et ça semble poser problème à la vue des résultats qu'il m'affiche^^).
Bref, j'ai cherché longtemps avant de me résigner à poster un nouveau message. Je souhaite écrire une macro qui recherche les références de la colonne A, dans la colonne B, et qui affiche ces numéros dans la colonne C.
Petite précision: le must serait d'utiliser le même principe que la fonction Ctrl+F, puisque les références de la colonnes A sont souvent plus "fournies" que celles de la colonne B (où s'effectue la recherche): il y a souvent des préfixes aux références.
J'espère avoir été le plus clair possible :/
Exemple:
Sur m'a premiere feuille j'ai:
Référence: Date:
0029PJ36T39 01/01/2001
0029FE574G6 29/05/2006
Et sur ma deuxième feuille:
Référence: Quantité:
PJ36T39 3256
FE574G6 24
J'aimerai donc afficher les infos de la colonne Quantité sur la feuille 1
Etant donné qu'il y a un bon millie de ligne, je vous remercie énormément de vos réponses, par avance!
Configuration: Windows XP
Internet Explorer 6.0
A voir également:
- Macro - fonction Recherche
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
La fonction de recherche marche, il faut simplement lui donner les bons paramètres.
Hypothèses pour que ça marche :
- Nombre du caractère du préfixe (ici 0029) fixe ;
- Référence classé par ordre croissant (sur la deuxième feuille du moins).
Admettons sur la feuille 1 :
- En colonne A, les références préfixées ;
- En colonne B, les dates ;
- En colonne C, les formules de recherche.
Admettons sur la feuille 2 :
- En colonne A, les références (non-préfixées), en ordre croissant ;
- En colonne B, les quantités.
La formule de recherche, sur la feuille1, en case Cx, se présente comme suit :
Avec :
- NBCAR() qui compte le nombre de caractères ;
- y qui est le nombre de caractères (fixe) du préfixe ;
- DROITE() qui récupère la référence sans le préfixe ;
- z qui est la dernière ligne (ou plus) de la plage contenant les données.
En espérant avoir donné la bonne réponse ;)
Hypothèses pour que ça marche :
- Nombre du caractère du préfixe (ici 0029) fixe ;
- Référence classé par ordre croissant (sur la deuxième feuille du moins).
Admettons sur la feuille 1 :
- En colonne A, les références préfixées ;
- En colonne B, les dates ;
- En colonne C, les formules de recherche.
Admettons sur la feuille 2 :
- En colonne A, les références (non-préfixées), en ordre croissant ;
- En colonne B, les quantités.
La formule de recherche, sur la feuille1, en case Cx, se présente comme suit :
=RECHERCHE(DROITE(Ax;NBCAR(Ax)-y);Feuil2!$A$2:$A$z;Feuil2!$B$2:$B$z)
Avec :
- NBCAR() qui compte le nombre de caractères ;
- y qui est le nombre de caractères (fixe) du préfixe ;
- DROITE() qui récupère la référence sans le préfixe ;
- z qui est la dernière ligne (ou plus) de la plage contenant les données.
En espérant avoir donné la bonne réponse ;)
je suis épaté! Merci pour ta réponse!
Cependant j'ai toujours un problème que je n'avais pas précisé: la colonne avec les référence préfixée est un peu en bordel. Des fois on peut avoir le préfixe 0029 et des fois 29 seulement (si la personne a oublié le 00).
Je vais qd mm commencer à utiliser ta formule car elle est pas mal du tout, je verrai ensuite au cas par cas pour les autres...
encore merci!
Cependant j'ai toujours un problème que je n'avais pas précisé: la colonne avec les référence préfixée est un peu en bordel. Des fois on peut avoir le préfixe 0029 et des fois 29 seulement (si la personne a oublié le 00).
Je vais qd mm commencer à utiliser ta formule car elle est pas mal du tout, je verrai ensuite au cas par cas pour les autres...
encore merci!