Option Explicit: Option Base 1
Sub CpyLigs()
If ActiveSheet.Name <> "Charges" Then Exit Sub
Dim m&, n&: m = Rows.Count
n = Cells(m, 1).End(3).Row: If n < 3 Then Exit Sub
Dim cel As Range, T1, T2, i&, j&, k&, c&
With Worksheets("Lignes soldées")
k = .Cells(m, 1).End(3).Row: Application.ScreenUpdating = 0
If k > 1 Then .Range("A2:F" & k).ClearContents
n = n - 1: T1 = [A2].Resize(n, 7): ReDim T2(n, 6): k = 1
For i = 1 To n
If T1(i, 7) = 0 Then
For j = i + 1 To n
If T1(j, 7) = 0 Then
If T1(i, 6) = -T1(j, 6) Then
For c = 1 To 6: T2(k, c) = T1(i, c): Next c
T1(i, 7) = 1: k = k + 1
For c = 1 To 6: T2(k, c) = T1(j, c): Next c
T1(j, 7) = 1: k = k + 1
Exit For
End If
End If
Next j
End If
Next i
.Select
[A2].Resize(k - 1, 6) = Application.Index(T2, _
Evaluate("Row(" & "1:" & n & ")"), [Column(A:F)])
End With
End Sub