Macro - fonction Recherche

Fermé
row_win Messages postés 40 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 5 janvier 2010 - 9 août 2007 à 12:40
row_win Messages postés 40 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 5 janvier 2010 - 10 août 2007 à 12:16
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
A voir également:

4 réponses

Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012 75
9 août 2007 à 13:47
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 :
=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 ;)
0
row_win Messages postés 40 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 5 janvier 2010 10
9 août 2007 à 15:20
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!
0
Sir_DEC Messages postés 143 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 12 mai 2012 75
9 août 2007 à 18:57
Tu veux éventuellement rajouter un "SI" pour mettre une condition, et suivant le résultat faire la recherche en rajoutant "00" au début ou pas. Après si ce préfixe est encore variable, ça devient compliqué :)
0
row_win Messages postés 40 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 5 janvier 2010 10
10 août 2007 à 12:16
à priori ça devrait passer comme ça! merci à toi!
0