Bonsoir, salut tulipe,
Si l'opération n'est pas répétitive,
tu peux copier les feuilles des 2 fichiers (placées en tête des onglets)
et lancer la macro "Complète"
c'est ce que j'ai fait ici pour tester
vois si çà convient
S'il y a des doublons d'entreprise, c'est la 1ère trouvée qui sera prise.
Sub Complète()
Dim Lg&, Lg2&, i%, c As Range
Dim f1 As Worksheet, f2 As Worksheet
Application.ScreenUpdating = False
Set f1 = Sheets(1) 'Sheets("fichier1") 'à régler
Set f2 = Sheets(2) 'Sheets("fichier2") 'à régler
With f2
.Range("b2:d2").Copy Destination:=f1.Range("c2")
Lg = f1.Range("a" & Rows.Count).End(xlUp).Row
For i = 4 To Lg
Set c = .Range("a:a").Find(f1.Cells(i, "a"), LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
f1.Cells(i, "c") = .Range(c.Address).Offset(0, 1)
f1.Cells(i, "d") = .Range(c.Address).Offset(0, 2)
f1.Cells(i, "e") = .Range(c.Address).Offset(0, 3)
End If
Next i
End With
'--- vérif si fichier2 contient des entreprises non existantes en fichier1 ---
'--- si c'est le cas, on les ajoute à la suite du fichier1 ---
With f1
Lg = f2.Range("a" & Rows.Count).End(xlUp).Row
For i = 4 To Lg
Set c = .Range("a:a").Find(f2.Cells(i, "a"), LookIn:=xlValues, lookat:=xlPart)
If c Is Nothing Then
Lg2 = .Range("a" & Rows.Count).End(xlUp).Row + 1
.Range("a" & Lg2) = f2.Cells(i, "a")
.Range("c" & Lg2) = f2.Cells(i, "b")
.Range("d" & Lg2) = f2.Cells(i, "c")
.Range("e" & Lg2) = f2.Cells(i, "d")
End If
Next i
.Activate
.Range("a:e").Columns.AutoFit
End With
End Sub
Amicalement
Claude