re
une autre version à la Didier lol
Sub Traitement()
Dim j As Integer
Dim TabTemp As Variant
Dim TabResult As Variant
Dim Derlgn As Long, L As Long, L2 As Long, N As Long
'Charge les données dans un tableau variant temporaire
With Sheets('Feuil1')
Derlgn = .Range('B65536').End(xlUp).Row
TabTemp = .Range(.Cells(1, 1), .Cells(Derlgn, 6)).Value
'Pour chaque ligne du tableau en partant de la 2
For L = 2 To Derlgn
'Si la ligne n'est pas 'topée'
If Not TabTemp(L, 6) Then
N = N + 1
'Pour les lignes qui suivent
For L2 = L + 1 To Derlgn
'Si trouve une correspondance
If TabTemp(L2, 2) = TabTemp(L, 2) Then
TabTemp(L, 1) = TabTemp(L2, 1)
TabTemp(L, 3) = TabTemp(L2, 3)
TabTemp(L, 4) = TabTemp(L2, 4)
'Additionne les quantités
TabTemp(L, 5) = TabTemp(L, 5) + TabTemp(L2, 5)
''Tope' la ligne
TabTemp(L2, 6) = True
End If
Next L2
End If
Next L
'Prépare le tableau des résultats
ReDim TabResult(1 To N, 1 To 5)
N = 0
'Compose le tableau des résultats (= lignes non 'topées')
For L = 2 To Derlgn
If Not TabTemp(L, 6) Then
N = N + 1
For L2 = 1 To 5
TabResult(N, L2) = TabTemp(L, L2)
Next L2
End If
Next L
'Colle les résultats dans la feuille
.Range(.Cells(2, 1), .Cells(Derlgn, 6)).ClearContents
.Range('A2').Resize(UBound(TabResult, 1), UBound(TabResult, 2)) = TabResult
End With
End Sub
je ne sais pas mettre en forme le code Balises pas top
Bonne journée