Sub Totaux()
Dim TabData() As Variant
Dim TabTransport() As Variant
Dim TabTotaux(1 To 1, 1 To 3) As Double
With Sheets("cpterendu")
TabTransport = .Range("A7:C19").Value
LastLine = .UsedRange.Rows.Count
TabData = .Range("J7:W" & LastLine).Value
For i = LBound(TabTransport, 1) To UBound(TabTransport, 1)
MoyenTransport = TabTransport(i, 1)
For j = LBound(TabData, 1) To UBound(TabData, 1)
If TabData(j, 1) = MoyenTransport Then
For k = j To UBound(TabData, 1)
If Trim(Replace(TabData(k, 2), Chr(160), "")) = "Total" Then
TabTransport(i, 1) = TabData(k, 5)
TabTransport(i, 2) = TabData(k, 6)
TabTransport(i, 3) = TabData(k, 7)
Exit For
End If
Next k
Exit For
End If
Next j
Next i
For i = LBound(TabTransport, 1) To UBound(TabTransport, 1)
If Not IsNumeric(TabTransport(i, 1)) Then
For j = UBound(TabTransport, 2) To LBound(TabTransport, 2) Step -1
TabTransport(i, j) = 0
Next j
End If
Next i
For i = LBound(TabTransport, 1) To UBound(TabTransport, 1)
TabTotaux(1, 1) = TabTotaux(1, 1) + CDbl(TabTransport(i, 1))
TabTotaux(1, 2) = TabTotaux(1, 2) + CDbl(TabTransport(i, 2))
TabTotaux(1, 3) = TabTotaux(1, 3) + CDbl(TabTransport(i, 3))
Next i
.Range("E7").Resize(UBound(TabTransport, 1), UBound(TabTransport, 2)) = TabTransport
.Range("E20").Resize(UBound(TabTotaux, 1), UBound(TabTotaux, 2)) = TabTotaux
End With
End Sub