RechercheV dans deux classeurs différents

Bonjour à tous,

Débutante sur Vba, j'ai besoin d'aide pour développer une macro,

En effet je cherche à créer une macro qui réalise une rechercheV entre deux fichiers différents,

"Valeur_cherchée": Colonne A du fichier 1

"Table_matrice" : Plage ("A: F") fichier 2

"No_index_col" : 3

En gros, je veux ouvrir le fichier 2, récupérer les valeurs de la colonne 3 et les coller dans la colonne J du fichier 1 et puis fermer le fichier 2.

Merci d'avance

Bonjour AmelieG et bienvenue!

Tu sais qu'une RECHERCHEV "normale" fonctionnera, même avec le fichier2 fermé !? ... Alors, pourquoi une macro?

U. Milité a écrit :

Bonjour AmelieG et bienvenue!

Tu sais qu'une RECHERCHEV "normale" fonctionnera, même avec le fichier2 fermé !? ... Alors, pourquoi une macro?

Bonjour Milité et merci,

Ah non je ne le savais pas

En fait mon fichier doit être mis à jour systématiquement, je veux éviter de taper la rechercheV à chaque mise à jour

Sans voir les fichiers, ni connaître ton contexte de travail, il me semble que la plage du fichier 2, je la nommerais, puis je la convertirais en tableau. De cette manière, chaque fois que tu ajouteras des données, la plage nommée reprendra automatiquement ces nouvelles données.

Si tu as besoin d'indications plus précises, dépose un petit fichier exemple (sans données confidentielles et de taille réduite: on n'a pas besoin de 3000 lignes )

U. Milité a écrit :

Sans voir les fichiers, ni connaître ton contexte de travail, il me semble que la plage du fichier 2, je la nommerais, puis je la convertirais en tableau. De cette manière, chaque fois que tu ajouteras des données, la plage nommée reprendra automatiquement ces nouvelles données.

Si tu as besoin d'indications plus précises, dépose un petit fichier exemple (sans données confidentielles et de taille réduite: on n'a pas besoin de 3000 lignes )

Re,

Tu n'avais pas précisé que le fichier "source" (ton classeur "Extraction") contenait un TCD ... pas certain que nommer la plage pour rendre sa taille dynamique soit possible? Et on ne peut pas tester, puisqu'il y a un lien vers des données externes. Si j'ai l'occasion, j'essaierai de recréer un contexte similaire, avec des fichiers à moi.

En l'état, si le classeur "Extraction" est ouvert, inscris la formule suivante en J1 du fichier "Progress":

=RECHERCHEV(A2;[Extraction.xls]Data!$A$5:$C$209;3;FAUX)

(attention au 4e argument de la fonction!)

Si tu ne veux pas voir apparaître les #N/A, tu peux utiliser:

=SIERREUR(RECHERCHEV(A2;[Extraction.xls]Data!$A$5:$C$209;3;FAUX);"")

si ta version d'Excel (il y a eu une version 2012 ?) est compatible. Dans le cas contraire, dis-nous.

Une fois que la formule est inscrite et recopiée aussi bas que nécessaire, ferme le fichier "Extraction" ... la formule renseignera alors le chemin d'accès au fichier "Extraction".

U. Milité a écrit :

Re,

Tu n'avais pas précisé que le fichier "source" (ton classeur "Extraction") contenait un TCD ... pas certain que nommer la plage pour rendre sa taille dynamique soit possible? Et on ne peut pas tester, puisqu'il y a un lien vers des données externes. Si j'ai l'occasion, j'essaierai de recréer un contexte similaire, avec des fichiers à moi.

En l'état, si le classeur "Extraction" est ouvert, inscris la formule suivante en J1 du fichier "Progress":

=RECHERCHEV(A2;[Extraction.xls]Data!$A$5:$C$209;3;FAUX)

(attention au 4e argument de la fonction!)

Si tu ne veux pas voir apparaître les #N/A, tu peux utiliser:

=SIERREUR(RECHERCHEV(A2;[Extraction.xls]Data!$A$5:$C$209;3;FAUX);"")

si ta version d'Excel (il y a eu une version 2012 ?) est compatible. Dans le cas contraire, dis-nous.

Une fois que la formule est inscrite et recopiée aussi bas que nécessaire, ferme le fichier "Extraction" ... la formule renseignera alors le chemin d'accès au fichier "Extraction".

J'ai testé la formule et ca marche mais comme je t'ai déjà expliqué avant je veux éviter de taper et recopier la formule à chaque fois

AmélieG a écrit :

comme je t'ai déjà expliqué avant je veux éviter de taper et recopier la formule à chaque fois

Tu l'as effectivement déjà écrit ... mais pas expliqué Qu'est-ce que tu devrais taper et recopier, dans quel cas et où?
Rechercher des sujets similaires à "recherchev deux classeurs differents"