Bonjour,
Comme beaucoup je viens de découvrir que ce merveilleux forum a eu des difficultés, j'espère qu'il va vite guérir, merci au docteur.
En fait je fais suite à un fil "trouver valeur" ou Pierrejean avait proposé une solution.
Ce matin j'allais te proposer la solution que tu as trouvé, nos idées se rencontrent.
Ce matin j'ai voulu trouver une solution pour ne pas balayer le tableau pour tester si le code existe, faire en faite un tableau à accès direct par clé et voici la solution :
Sub pyrof_01()
' création d'un tableau à accès direct
Dim feuille1 As Object
Set feuille1 = Sheets("noms")
Dim tab_cle 'Crée des variables
Set tab_cle = CreateObject("Scripting.Dictionary")
l = 2
While feuille1.Cells(l, 1) <> ""
cle = feuille1.Cells(l, 2)
data = feuille1.Cells(l, 1)
tab_cle.Add cle, data
l = l + 1
Wend
'-----------------------------------------------
Dim feuille2 As Object
Set feuille2 = Sheets("résultats")
ligne = 2
While feuille2.Cells(ligne, 1) <> ""
cle = feuille2.Cells(ligne, 1)
resultat = tab_cle(cle)
feuille2.Cells(ligne, 9) = resultat
ligne = ligne + 1
Wend
End Sub
Je pense que l'on peut faire encore mieux, il faudrait créer tab_clé comme tablo=range()
Salutation
Comme beaucoup je viens de découvrir que ce merveilleux forum a eu des difficultés, j'espère qu'il va vite guérir, merci au docteur.
En fait je fais suite à un fil "trouver valeur" ou Pierrejean avait proposé une solution.
Ce matin j'allais te proposer la solution que tu as trouvé, nos idées se rencontrent.
Ce matin j'ai voulu trouver une solution pour ne pas balayer le tableau pour tester si le code existe, faire en faite un tableau à accès direct par clé et voici la solution :
Sub pyrof_01()
' création d'un tableau à accès direct
Dim feuille1 As Object
Set feuille1 = Sheets("noms")
Dim tab_cle 'Crée des variables
Set tab_cle = CreateObject("Scripting.Dictionary")
l = 2
While feuille1.Cells(l, 1) <> ""
cle = feuille1.Cells(l, 2)
data = feuille1.Cells(l, 1)
tab_cle.Add cle, data
l = l + 1
Wend
'-----------------------------------------------
Dim feuille2 As Object
Set feuille2 = Sheets("résultats")
ligne = 2
While feuille2.Cells(ligne, 1) <> ""
cle = feuille2.Cells(ligne, 1)
resultat = tab_cle(cle)
feuille2.Cells(ligne, 9) = resultat
ligne = ligne + 1
Wend
End Sub
Je pense que l'on peut faire encore mieux, il faudrait créer tab_clé comme tablo=range()
Salutation