Bonjour le fil, bonjour le forum,
J'avais commencé à plancher avant que tu n'envoies le fichier. Comme le code est commenté tu devrais pourvoir adapter facilement...
Le code :
Sub Macro1()
Dim F1 As Worksheet 'déclare la variable F1 (Onglet Feuil1)
Dim F2 As Worksheet 'déclare la variable F2 (Onglet Feuil2)
Dim T1 As Variant 'déclare la variable T1 (Tableau 1)
Dim T2 As Variant 'déclare la variable T1 (Tableau 2)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim TS() As Variant 'déclare la variable TS (Tableau de Substitution)
Set F1 = Worksheets("Feuil1") 'définit l'onglet F1
Set F2 = Worksheets("Feuil2") 'définit l'onglet F2
T1 = F1.Range("A1").CurrentRegion 'définit le tableau T1
T2 = F2.Range("A1").CurrentRegion 'définit le tableau T1
ReDim Preserve TS(1 To UBound(T2, 1), 1 To 3) 'redimensionne le tableau de substitution TS (autant de lignes que T2, 3 colonnes)
For I = 1 To UBound(T2, 1) 'boucle 1 : sur toutes les lignes I du tableau T2
For J = 1 To UBound(T1, 1) 'boucle 2 : sur toutes les lignes 2 du tableau T1
TS(I, 1) = T2(I, 1) 'récupère dans la ligne I colonne 1 du tableau de substitution TS, la valeur de la donnée ligne I colonne 1 de T2
TS(I, 2) = T2(I, 2) 'récupère dans la ligne I colonne 2 du tableau de substitution TS, la valeur de la donnée ligne I colonne 2 de T2
If T2(I, 1) = T1(J, 1) Then 'condition : si les noms coïncident
TS(I, 3) = T2(I, 2) 'récupère dans la ligne I colonne 3 du tableau de substitution TS, la valeur de la donnée ligne I colonne 2 de T2
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
F2.Range("A1").Resize(UBound(TS, 1), UBound(TS, 2)).Value = TS 'renvoie le tableau TS dans la cellule A1 redimensionnée de l'onglet T2
End Sub