Macro - transposer la valeur d'une cellule si celle-ci renvoie..

Fermé
CSMOO7 - 20 juin 2013 à 16:31
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 8 juil. 2013 à 17:23
Bonjour,

<config>Windows 7 / Excel 2010

Je m'excuse d'avance si la réponse a déjà été donnée, mais je débute en macro et je ne parviens pas à trouver comment faire ce que je souhaite.
J'ai deux classeurs bien spécifiques : l'un comprenant une liste de noms et l'autre comprenant tous les noms et les adresses mails associées. J'aimerais créer une macro afin de rechercher automatiquement les noms de mon premier classeur et y accoler l'adresse mail correspondante, se trouvant dans le second classeur.

D'après mes recherches une boucle permettrait cela, mais je ne sais pas trop comment faire.

Je vous remercie d'avance.
A voir également:

2 réponses

Bonjour,

Nul besoin de Macro pour faire celà, une simple Recherche Verticale est sufficante.

Appelons le premier Fichier FICH1 et le 2ème FICH2

Dans FICH1 il y a juste les NOM qui sont en colonne A.
En cellule B2 il faut tapper la formule suivante :

=RECHERCHEV(A1;'[FICH2.xls]Feuil1'!&A&1:$B$65000;2;0)

Il faut ensuite copier la formule vers le bas et le tour est joué
0
Bonjour,

Merci pour votre réponse. Néanmoins, cela ne fonctionne pas, je pense que je n'ai pas indiqué le bon endroit où rechercher les noms ou les adresses mails. Dans mon premier fichier, mes noms et prénoms sont en E ; dans mon fichier 2 les noms et prénoms sont en E et les adresses mails en B
Je me place en F2 et je tape =recherchev(E2;'[fich2.xls]adresses'!$E:$E;'[fich2.xls]adresses'!$B:$B;0)
Ça ne fonctionne pas, tout en ayant vérifié que les noms étaient bien dans les deux listes, sans erreur de frappe particulière.

Merci d'avance.
0
Avec la recherche Verticale il faut toujours que la cellule de référence soit en première colonne ou avant les données que l'on recherche.

Il y a 2 possibilité :
Soit vous copiez la colonne E en première position
Soit vous copiez la colonne B après la colonne E

En supposant que vous copiez la colonne E en Colonne A, celà signifie que les adresses mail vont être décallé de la colonne B vers la C.
La formule sera alors :
=recherchev(E2;'[fich2.xls]adresses'!$A$1:$C$65536;3;0)

Dans la paranthèse du RECHERCHEV :
- La première donnée avant le ";" correspond à la cellule de référence (en gros la référence que vous allez rechercher dans l'autre tableau)
- Le deuxième champ avant le deuxième ";" corrspond au dimenssiondu tableau ou vous allez chercher les adresses (là j'ai mis de A1 jusqu'à C65536)
- Le troisième champ après le troisième ";" correspond à la colonne où se trouve la réponse (ici c'est 3 pour la troisième colonne du tableau soit la colonne C)
- Enfin le 0 est un paramètre imposant à la formule de ne donner une réponse que si elle trouve une référence scrupuleusement identique à la cellule de référence.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
8 juil. 2013 à 17:23
Bonjour
=Si(nb.si('[fich2.xls]adresses'!$E:$E;E2)=0;"inconnu";Index('[fich2.xls]adresses'!$B:$B;Equiv(E2;'[fich2.xls]adresses'!$E:$E;0))

0