1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| Sub Test()
Dim Tabl, Tmp
Dim MaxTabl As Long, MaxLigneBond As Long, i As Long, j As Long
Application.ScreenUpdating = False
With Workbooks(nomFichierImport).Worksheets(wsBond)
MaxLigneBond = .Range("A" & .Rows.Count).End(xlUp).Row
Tmp = .Range("A5:AB" & MaxLigneBond)
End With
MaxTabl = 1
ReDim Tabl(1 To 8, 1 To 1)
For i = 1 To UBound(Tmp)
For j = 1 To MaxTabl
If Tabl(1, j) = Tmp(i, 2) Then
Tabl(8, j) = Tabl(8, j) + Val(Tmp(i, 8))
Exit For
Else
If j = MaxTabl Then
MaxTabl = MaxTabl + 1
ReDim Preserve Tabl(1 To 8, 1 To MaxTabl)
Tabl(1, MaxTabl) = Tmp(i, 2)
Tabl(2, MaxTabl) = Tmp(i, 3)
Tabl(3, MaxTabl) = Tmp(i, 4)
Tabl(4, MaxTabl) = Tmp(i, 5)
Tabl(5, MaxTabl) = Tmp(i, 26)
Tabl(6, MaxTabl) = Tmp(i, 27)
Tabl(7, MaxTabl) = Tmp(i, 28)
Tabl(8, MaxTabl) = Val(Tmp(i, 8))
End If
End If
Next j
Next i
Feuil2.Range("A1").Resize(MaxTabl, 8) = Application.Transpose(Tabl)
End Sub |
Partager