Appliquer RechercheV sur toute une colonne

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 !

gillessimon

XLDnaute Nouveau
Bonjour,

dans le fichier ci-joint, je voudrais faire une macro pour remplir la colonne M en recherchant la valeur trouvée en L avec les codes de correspondance de la feuille Data.
Je sais le faire à la main avec la fonction recherchev en M2 et puis en tirant la poignée pour dupliquer sur les cellules M3.. mais ne sais pas le faire par macro.
Il faudrait que la macro se termine sur la condition de trouver une ligne vide dans la feuille principale, car cette feuille contient environ 2000 lignes et peut varier en taille (ce fichier n'est qu'une petite fraction du fichier global).

D'avance merci,
Gilles.
 

Pièces jointes

Re : Appliquer RechercheV sur toute une colonne

Bonjour Gilles, bonjour le forum,

Je te propose la macro suivante:
Code:
Sub Macro1()
 
Dim dl As Integer 'déclare la variavle dl (Dernière Ligne)
Dim p As Range 'déclare la variable p (Plage)
 
Set p = Sheets("Data").UsedRange 'définit la variable p
 
With Sheets("Liste_Concours_Non_Courus") 'prend en compte l'onglet "Liste_Concours_Non_Courus"
    dl = .Range("A65536").End(xlUp).Row 'définit la variable dl
    .Cells(2, 13).Formula = "=VLOOKUP(L2,Data!" & p.Address & ",2,FALSE)" 'place la forumule en M2
    Range("M2").Select 'sélectionne M2
    Selection.AutoFill Destination:=Range("M2:M" & dl), Type:=xlFillDefault 'recopie la formule jusqu'à la fin
End With
End Sub

P.S. j'ai noté qu'elle renvoyait des erreurs car le texte en Data n'est pas toujours le même que celui de ton tableau. Mais j'ai pensé que c'était à cause de l'exemple vite fait...
 
Re : Appliquer RechercheV sur toute une colonne

Bonjour Gilles, bonjour le forum,

Je te propose la macro suivante:
Code:
Sub Macro1()
 
Dim dl As Integer 'déclare la variavle dl (Dernière Ligne)
Dim p As Range 'déclare la variable p (Plage)
 
Set p = Sheets("Data").UsedRange 'définit la variable p
 
With Sheets("Liste_Concours_Non_Courus") 'prend en compte l'onglet "Liste_Concours_Non_Courus"
    dl = .Range("A65536").End(xlUp).Row 'définit la variable dl
    .Cells(2, 13).Formula = "=VLOOKUP(L2,Data!" & p.Address & ",2,FALSE)" 'place la forumule en M2
    Range("M2").Select 'sélectionne M2
    Selection.AutoFill Destination:=Range("M2:M" & dl), Type:=xlFillDefault 'recopie la formule jusqu'à la fin
End With
End Sub

P.S. j'ai noté qu'elle renvoyait des erreurs car le texte en Data n'est pas toujours le même que celui de ton tableau. Mais j'ai pensé que c'était à cause de l'exemple vite fait...



C'est génial, un grand merci, c'est exactement ce dont j'avais besoin,

Gilles.
 
- 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

Discussions similaires

Réponses
10
Affichages
453
Retour