Sub Transfert()
Dim DerLig1 As Long, DerLig2 As Long, i As Long, j As Long, TabIni1, TabRef1
Dim DerLig3 As Long, DerLig4 As Long, k As Long, l As Long, m As Long, TabIni2, TabRef2
DerLig1 = Worksheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row
DerLig2 = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
TabIni1 = Worksheets("Feuil2").Range("A2:E" & DerLig1)
TabRef1 = Worksheets("Feuil1").Range("A2:E" & DerLig2)
For i = LBound(TabRef1) To UBound(TabRef1)
For j = LBound(TabIni1) To UBound(TabIni1)
If TabRef1(i, 1) = TabIni1(j, 1) Then
TabIni1(j, 2) = TabIni1(j, 2) + TabRef1(i, 3)
'///ajout modif
'Erreur, il faudrais un retour à la ligne pour ajouter le Doc suivant
'Si il en existe déja un
If TabIni1(j, 3) = "" Then
TabIni1(j, 3) = TabIni1(j, 3) + TabRef1(i, 4)
Else
TabIni1(j, 3) = TabIni1(j, 3) & vbLf + TabRef1(i, 4)
End If
'///
TabIni1(j, 4) = TabIni1(j, 4) + TabRef1(i, 2)
'///ajout modif
'Erreur, existe-t-il une fonction max en vba?
Dim x
x = TabRef1(i, 5)
If TabIni1(j, 5) <> "" Then
If x > TabIni1(j, 5) Then TabIni1(j, 5) = x
Else
TabIni1(j, 5) = x
End If
'///
Exit For
End If
Next
Next
Worksheets("Feuil2").Range("A2").Resize(UBound(TabIni1, 1), UBound(TabIni1, 2)) = TabIni1
End Sub