Vlookup - ça coince
Bonjour,
J'ai un tableau sur la feuille accueil,
Avec des numéros d'équipes dans une colonne et les noms d'équipe dans une autre.
Sur la feuille "Tour 2", les numéros d'équipe ne sont pas dans l'ordre et je voudrais mettre le nom de l'équipe en face du numéro.
Avant de me lancer dans cette fonction avec des variables et des boucles, j'aimerais bien comprendre la syntaxe de la fonction.
J'ai essayé plusieurs trucs trouvés à droite et à gauche sur le net mais je n'arrive pas à adapter à mon cas.
Ce code me retourne une erreur
Dim test As Long
test = Application.VLookup("1", Sheets("Accueil").Range("B6:C27"), 3, 0)
MsgBox testCe code inscrit #N/A dans la bonne case, je pense que c'est parce qu'il ne trouve rien
Si j'ai bien compris, je recherche la valeur 1 dans le tableau couvrant les cellules B6 à C27 et la réponse se trouve dans la colonne 3 soit la colonne C de ma feuille Accueil.
Cells(5, 3) = Application.VLookup("1", Sheets("Accueil").Range("B6:C27"), 3, 0)Dans le fichier joint mon problème se trouve au niveau de la feuille "Tour 1" en cliquant sur "créer le tour 2"
Merci pour votre aide
Bonjour
Steph' a écrit :Si j'ai bien compris, je recherche la valeur 1 dans le tableau couvrant les cellules B6 à C27 et la réponse se trouve dans la colonne 3 soit la colonne C de ma feuille
Non, pas dans la colonne 3 de ta feuille mais dans la 2° colonne du tableau que tu définies par B6 à C27.
Change donc le 3 par un 2 et cela devrait marcher.
OK ?
Bye !
Bonjour,
Merci pour cette réponse, je viens de m'apercevoir de mon erreur
Du coup j'ai un peu avancée pour la suite.
J'ai bien réussi à récupérer les noms des équipes, mais elles sont pas affichées dans l'ordre et pas en face du numéro d'équipe
Dim equipe As Integer
Dim j As Integer
equipe = 1
For j = 5 To derequipe
Cells(j, 3) = Application.VLookup(equipe, Sheets("Accueil").Range("B6:C27"), 2, 0)
equipe = equipe + 1
Next jAvec ça j'obtiens un truc style
1 ---- Test 1
22 --- Test 2
3 ---- Test 3
2---- Test 4
Au lieu de
1 --- Test 1
22 ---Test 22
3 --- Test 3
2 --- Test 2
Merci pour votre aide
Essaie en modifiant ton code :
'equipe = 1 --> inutile
For j = 5 To derequipe
Cells(j, 3) = Application.VLookup(Range("B" & j),Sheets("Accueil").Range("B6:C27"), 2, 0)
equipe = equipe + 1
Next jOK ?
J'ai trouvé
Je ne sais pas si c'est bien propre comme code mais bon ... Je débute
Dim equipe As Integer
Dim j As Integer
Dim nomequipe As Variant
Dim lesequipes As Long
Dim celluletrouvee As Range
Dim ligne As Integer
Dim colonne As Integer
equipe = 1
For j = 5 To derequipe
nomequipe = Application.VLookup(equipe, Sheets("Accueil").Range("B6:C27"), 2, 0)
lesequipes = Range("B" & Rows.Count).End(xlUp).Row
Set celluletrouvee = Range("B4:B" & lesequipes).Find(equipe, LookAt:=xlWhole)
ligne = celluletrouvee.Row
col = celluletrouvee.Column
Cells(ligne, col + 1) = nomequipe
equipe = equipe + 1
Next j