Recherche désignation en fonction de la référence en VBA

Résolu/Fermé
Wartin84 - 22 mars 2016 à 14:59
 Wartin84 - 22 mars 2016 à 18:52
Bonjour,

Je cherche comment faire pour chercher la désignation de mon produit dans une autre feuille en VBA :

Feuille 1 :
Colonne A : Référence
Colonne B : Désignation

Feuille 2 :
Colonne A : Référence
Colonne B : "Comment faire pour insérer ma désignation?"

Merci bien =)

1 réponse

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
22 mars 2016 à 17:01
Bonjour Wartin84

Pourquoi en VBA alors qu'une formule de RECHERCHEV fait l'affaire ?

Si tu maintiens en VBA il faut un exemple de ton fichier pour t'indiquer le bon code, faut-il boucler sur toute une liste en feuille 2 ou simplement pour une cellule ?
Postes un exemple de ton fichier en expliquant ce que tu veux retrouver en feuille 2, sur cjoint.com, fais créer un lien, copies le et reviens le coller ici

Cdlmnt
Via
0
Bonjour via55

Merci pour ta réponse,

Malheureusement oui je suis obligé de passer par du vba, je maitrise pourtant le recherchev :-/

Je dois boucler sur toute une liste,

http://www.cjoint.com/c/FCwryyPPTqO

J'ai mis la partie de mon fichier comme tu me l'as demandé.

Cordialement Wartin =)
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > Wartin84
22 mars 2016 à 18:43
Re,

Alors colles cette macro dans un module de l'éditeur VBA puis tu la lances depuis ta 2eme feuille à partir de Developpeur - Macros ou si tu préfères tu mets un bouton su ta feuille et dans son code tu mets le nom de la macro

Sub designation()
Dim Ligne As Long
'dernière ligne remplie de la feuille active (valeur en col A)
Ligne = ActiveSheet.Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'boucle sur les lignes de la 2e à la derniere
For n = 2 To Ligne
'Applique RECHERCHEV de la valeur en A dans la table feuille1 et met le résultat en B
ActiveSheet.Range("B" & n) = Application.WorksheetFunction.VLookup(ActiveSheet.Range("A" & n), Sheets("Mat°1°").Range("A:B"), 2, 0)
Next
End Sub


Cdlmnt
Via
0
Exactement ça,

Merci beaucoup =)
0