VLookUp - VBA - remplacer valeurs colonne

Bonjour

J'essai sans succès d'utiliser la fonction Vlookup

L'idée est de coller dans une colonne en faisant une boucle le résultat de :

Sheets("Données Année").Range("C" & i) = Application.WorksheetFunction.VLookup(Sheets("Données Année").Range("B:B"), Sheets("Paramétrages personnes").Range("C:C"), 4, False)

Mais ca ne fonctionne pas ... pourtant ca ressemble bien à RECHERCHEV ...

Pouvez vous m'aider SVP ?

Hello

Sheets("Données Année").Range("C" & i) = Application.WorksheetFunction.VLookup(Sheets("Données Année").Range("B:B"), Sheets("Paramétrages personnes").Range("C:C"), 4, False)

Cet argument n'est pas bon :

Sheets("Données Année").Range("B:B")

Ta valeur cherchée ne doit pas être une plage de données

@+

Merci Baroute78

J'ai suite à ta remarque :)

Remplacé l'argument par la valeur de la donnée dans B4 (je vais essayé sur une ligne) et on verra pour la boucle plus tard

Sheets("Données Année").Range("C4") = Application.WorksheetFunction.VLookup(Sheets("Données Année").Range("B4").Value, Sheets("Paramétrages personnes").Range("C:C"), 4, False)

Erreur 1004 ...

Hello,

Cest normal tu lui dis de faire une recherche sur la colonne C uniquement donc dans une seule colonne mais tu lui indiques de trouver la correspondance dans la colonne 4.

Colonne 4 d’un tableau d’une colonne c’est compliqué 😂

@+

Salut Baroute :)

Merci en effet ! et je te remercie de m'aider petit à petit c'est comme çà qu'on se creuse la tête et qu'on progresse !

malgré la modif suivante :

Application.WorksheetFunction.VLookup(Sheets("Données Année").Range("B4"), Sheets("Paramétrages personnes").Range("A:G"), 3, False) = Sheets("Données Année").Range("C2")

Sheets("Données Année").Range("B4") = la chaine de caractère a chercher

Sheets("Paramétrages personnes").Range("A:G") = dans le tableau A:G

colonne 3 du tableau A:G

J'ai encore une erreur 1004 ... selon moi c'est pas si mal :)

Hello,

Envoie un exemple de ton fichier :)

@+

11macro-duc.xlsm (16.22 Ko)

Voici

J'ai essayé de retranscrire un peu le fichier d'origine que je ne peux pas envoyer mais toute l'idée est là :)

15macro-duc.xlsm (16.28 Ko)

Avec une petite erreur de frappe en moins

Hello,

Je t'ai mis la version sans la boucle et la version avec boucle.

Je te conseille aussi d'utiliser directement la formule RECHERCHEV dans ta cellule si ça te permet de répondre à ton besoin.

Explication de pourquoi ça ne fonctionnait pas : la recherchev a besoin que ton critère de recherche soit dans la première colonne de ton tableau de recherche sinon ça ne fonctionne pas.

N'hésite pas si besoin

@+

15macro-duc.xlsm (16.66 Ko)

impressionnant !

Merci !

Hello,

N'hésite pas à passer le sujet en résolu :)

@+

Petite question, même si je ne suis pas certain que ca me serve.

On peut faire un critère de recherche sur les 2 colonnes à la fois prénom + nom et pas uniquement nom ?

Hello,

Je savais que tu poserais la question =D

Je te recommande de créer une clef unique pour chaque personne car deux personnes peuvent avoir le même nom et le même prénom et de faire ta recherchev sur cette clef unique.

Exemple simple avec un numéro distinct par personne :)

image

@+

pas bête :)

Merci

Salut Baroute78

J'ai besoin d'une amélioration :).

Lorsqu'un nom n'existe pas il y a une erreur 1004.

Faut il créer une boucle pour qu'il contourne la difficulté du genre :

si il y a une erreur aller au prochain "i" ?

hello

Essaie ça juste avant l’instruction

On error Resume next

@+

Désolé pour le retard

Merci je regarde çà

Rechercher des sujets similaires à "vlookup vba remplacer valeurs colonne"