Je reviens avec une solution.
Un collègue plus calé que moi m'a guide.
Dim extension
Dim trouve
Dim ls_message
ls_message = ""
For I = 3 To 1200
extension = Cells(I, 1)
trouve = False
For J = 2 To 1200
recherche = Worksheets("Sheet3").Range("B" & J).Value
If extension = recherche Then
Cells(I, 2) = Worksheets("Sheet3").Range("Y" & J).Value
Cells(I, 3) = Worksheets("Sheet3").Range("X" & J).Value
Cells(I, 4) = Worksheets("Sheet3").Range("W" & J).Value
Cells(I, 12) = Worksheets("Sheet3").Range("P" & J).Value
Cells(I, 6) = Worksheets("Sheet3").Range("C" & J).Value
Cells(I, 5) = Worksheets("Sheet3").Range("AJ" & J).Value
trouve = True
Exit For
End If
Next
If trouve = False Then
ls_message = ls_message & extension & Chr(13)
End If
Next
MsgBox ls_message
En gros, j'ai créé un bouton sur l'onglet de mon annuaire et je lui ai appliqué la macro ci-dessus.
Cette macro passé en revue les lignes 3 à 1200 de mon annuaire en incrémentant (la ligne 1 et 2 sont les titres des colonnes) et compare le résultat avec la colonne AJ de mon onglet avec les mises à jour (sheet3).
Si il trouve une correspondence il remplace automatiquement les colonnes données avec les informations mises à jour.
En fin de macro une message box me donne les extensions pour lesquelles il n'a pas trouvé de correspondence.