Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RechercheV multiple à automatiser

  • Initiateur de la discussion Initiateur de la discussion cyjan
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

cyjan

Guest
bonjour,

d'abord bravo pour ce forum..
avant de vous poser ma question, j'ai cherché dans le forum si je pouvais trouver la solution mon problème.. mais en vain.. (à priori!).

voici ma question :
j'ai 2 fichiers avec un point commun qui est le GENCOD.
je dois rapatrier sur le fichier1 des données provenant du fichier2 en utilisant le GENCOD avec la fonction RECHERCHEV.
ca, je sais faire et ca marche tres bien.

par contre, j'ai une quarantaine de RECHERCHEV à faire ! et ca me prends bcp de temps et c'est très très fastidieux..
au bout de la 10eme recherchev, parfois, je ne sais plus en j'en suis.. !

bref, ma question :

grace à une macro, comment pourrais je automatiser ces 40 RECHERCHEV ?

j'ai essayé de faire une macro avec recherchev, marche pas.. et très lourd.

est ce possible dans EXCEL 2003 ?

voila, merci pour votre coup de main.
 
Re : RechercheV multiple à automatiser

bonjour cyjan

Il y a sûrement une solution, mais peux-tu déposer un extrait de 3 ou 4 lignes de tes deux fichiers?

@ +

mth

Edit: bling ; 🙂 bonjour Pierrejean 🙂
 
Re : RechercheV multiple à automatiser

oui, alors, je viens de faire une petite selection, fichier1.xls et fichier2.xls.

les voici :
 

Pièces jointes

Re : RechercheV multiple à automatiser

re 🙂

A essayer:

En E4 du Fichier1 à copier coller dans les autres cellules
Code:
=RECHERCHEV($C4;[fichier2.xls]Feuil1!$C:$H;COLONNE()-3;FAUX)

ou:

Code:
=INDEX([fichier2.xls]Feuil1!$D$1:$H$16;EQUIV($C4;[fichier2.xls]Feuil1!$C:$C;0);EQUIV(E$3;[fichier2.xls]Feuil1!$D$3:$H$3;0))

@ +

mth
 
Re : RechercheV multiple à automatiser

Re

Une solution

Attention les noms de fichiers ont été changés (j'ai deja des fichiers fichier1.xls et fichier2.xls)

Edit: bises mth
 

Pièces jointes

Re : RechercheV multiple à automatiser

les 2 fonctionnent, c'est vraiment excellent !

en fait, je n'ai pas besoin de macro a priori ?

je vais essayer de comprendre les parametres de la recherchev et de l'index pour
l'adapter si besoin.. car, en fait, sur le fichier2, il y a des colonnes que je ne souhaite pas rapatrier...

donc, plusieurs solutions :
1/
je crée une macro pour supprimer les colonnes du fichier2 que je ne souhaite pas rapatrier, (je ne vous ai pas dit qu'il y avait des colonnes du mon fichier2 que je ne voulais pas, pour l'exemple je ne les ai pas copie) et fait suivre à partir du GENCOD toutes les colonnes que je souhaite rapatrier.
dans le fichier1, je rapatrie donc toutes les colonnes et je numérote toutes les colonnes et je les classes par ordre croissant pour avoir l'ordre des colonnes que je souhaite..

2/
avec la fonction index, à partir du fichier1, peut on "dire" (à exprimer en code) par exemple : dans le fichier2, tu me rapatries la colonne D et F uniquement avec comme point le GENCOD, colonne C ?

peut on l'exprimer en macro ?

3/ ou bien, par exemple, selectionner d'une maniere ou d'une autre, en utilisant le point commun colonne C, tu me rapatrie dans la colonne D du fichier1, la colonne E du fichier2 et tu rapatrie dans la colonne E du fichier1, la colonne F du fichier2. ?

bon, je suis peut etre pas clair..
en tout cas, merci !!
 
Re : RechercheV multiple à automatiser

Bise Pierrejean 🙂

Bêtise de ma part ?
Je me régalais à l'idée de dévorer ton code, et... rien ...
As tu déposé les bons fichiers ?
 
Re : RechercheV multiple à automatiser

re cyjan

pas forcément tout bien compris mais ta solution 1 me semble bien compliquée.

En revanche, tu dois pouvoir te servir de la deuxième formule avec Index/Equiv: le deuxième equiv détermine la colonne, donc tu peux sans doute te servir du libellé de la colonne que tu souhaites mettre à jour, pour peu qu'il soit commun entre les deux fichiers.

Si tu n'arrives pas à adapter, indique nous ce que tu veux EN VRAI avec la VRAIE structure de tes fichiers, ça sera plus simple pour essayer de te répondre, que ce soit en VBA ou en formule.

@ +

mth
 
Re : RechercheV multiple à automatiser

Re

Erreur de debutant: Oubli d'enregistrement !!!
Voila les fichiers corrects (du moins je l'espere)
Quand aux questions posées : j'y reflechi
 

Pièces jointes

Re : RechercheV multiple à automatiser

pierrejean, c'est vraiment excellent !

pour également faire une réponse à MTH, ajout d'info :

mon fichier1 est un fichier sur lequel, je dois supprimer certaines colonnes inutiles et en ajouter d'autres (pour rapatrier celles du fichier2).
donc, pour le formatage du fichier1.

1/ je fais une macro pour la suppression et la création de colonnes avec les titres que je souhaite. aucun soucis, je sais faire.

dans l'idéal, sachant que les colonnes de mon fichier2 sont tjrs identiques :

2/ une fois la structure de réception des colonnes du fichier1 faite, programmer une macro que me rapatrie dans le fichier1 les colonnes désirées du fichier2, dans la colonne correspondante sur le fichier1.

en fait, ce serait une macro paramétrable...

ca fait 2 macros, une macro de mise en page et une macro de rapatriement de données.. est ce envisageable ?
 
Re : RechercheV multiple à automatiser

re,

Citation: pierrejean, c'est vraiment excellent !

sourire.. bien d'accord avec toi, un vrai bonheur, comme toujours avec Pierrejean 🙂

Pour ma part, coté formule j'ai sans doute mal compris mais je ne vois pas l'utilité de compliquer comme ça, la formule peut être placée dans les colonnes que tu souhaites mettre à jour et pas dans les autres, et le deuxième equiv doit pouvoir s'adapter au libellé de colonne que tu cherches, donc....
Coté VBA, sans moi car je n'y connais rien, mais avec pierrejean tu es entre de bonnes mains, rien ne lui résiste... 🙂

Bon après-midi à toi et bises à Pierrejean,

mth
 
Re : RechercheV multiple à automatiser

bonjour pierrejean,

merci pour ton retour, j'essaie de comprendre ton script de macro afin de l'adapter à ma sauce..

Sub test()
tablo = ActiveSheet.Range("C4:C" & Range("C65536").End(xlUp).Row)


>> c'est le point de depart du fichier1, le point commun, C4 jusqu'à la fin de la
colonne C65536 ?
>> a quoi correspond ":C" dans ta formule ?


tablo2 = Workbooks("cyjan_fichier2.xls").Sheets("Feuil1").Range("C4:H" & Range("C65536").End(xlUp).Row)


>> idem, à quoi sert "C4:H" est ce la selection à partir de C4 jusqu'à H ?

For n = LBound(tablo) To UBound(tablo)

>> tu commences une boucle, que represente la variable n ?

For m = LBound(tablo2) To UBound(tablo2)

>> idem, m ? lbound ? ubound ?

If tablo(n, 1) = tablo2(m, 1) Then
For p = 1 To 4


>> p est il egal au nombre de colonne que tu rapatries ?

ActiveSheet.Cells(n + 3, p + 4) = tablo2(m, p + 1)

>> la, tu incrementes.. mais je ne comprends pas..

Next p
End If
Next m
Next n
End Sub


j'ai essaye d'adapter le script dans une autre situation mais ca n'a pas marche.. il faut que je comprenne ta macro pour l'adapter..

merci à toi pour tes commentaires
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
  • Question Question
Réponses
1
Affichages
1 K
C
Réponses
0
Affichages
982
C
I
  • Question Question
Réponses
6
Affichages
1 K
IsaSimplement
I
G
  • Question Question
XL 2013 Excel VBA
Réponses
2
Affichages
1 K
Golfolies
G
I
Réponses
3
Affichages
2 K
Ispahan
I
F
Réponses
12
Affichages
3 K
N
Réponses
5
Affichages
3 K
Nicocotte125
N
M
Réponses
11
Affichages
9 K
Y
Réponses
11
Affichages
3 K
Y
C
Réponses
3
Affichages
721
cokow1984
C
G
Réponses
3
Affichages
708
G
C
Réponses
3
Affichages
855
cess2308
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…