Sub TheCollector()
Dim WS As Worksheet
Dim PlageToScan As Variant
Dim x As Integer
Dim y As Long
For Each WS In ThisWorkbook.Worksheets
If WS.Name <> 'fin de semaine' Then
PlageToScan = WS.Range('A2:E' & WS.Range('A35000').End(xlUp).Row)
For x = 1 To UBound(PlageToScan)
ReDim Preserve TabGeneral(4, y)
TabGeneral(0, y) = PlageToScan(x, 1) 'N° article
TabGeneral(1, y) = PlageToScan(x, 2) 'Nom
TabGeneral(2, y) = PlageToScan(x, 3) 'prix unitaire
TabGeneral(3, y) = PlageToScan(x, 4) 'quantité vendu
TabGeneral(4, y) = PlageToScan(x, 5) 'prix total vendu/jour
y = y + 1
Next x
End If
Next WS
TheSorter
End Sub
Sub TheSorter()
Dim i As Long, ii As Long, iii As Long
Dim Tmp1 As String, Tmp2 As String, Tmp3 As Double, Tmp4 As Double, Tmp5 As Double
For i = LBound(TabGeneral, 2) To UBound(TabGeneral, 2)
For ii = LBound(TabGeneral, 2) + iii To UBound(TabGeneral, 2)
If CInt(TabGeneral(0, i)) > CInt(TabGeneral(0, ii)) Then
Tmp1 = TabGeneral(0, ii): Tmp2 = TabGeneral(1, ii): Tmp3 = TabGeneral(2, ii): Tmp4 = TabGeneral(3, ii): Tmp5 = TabGeneral(4, ii)
TabGeneral(0, ii) = TabGeneral(0, i): TabGeneral(1, ii) = TabGeneral(1, i): TabGeneral(2, ii) = TabGeneral(2, i): _
TabGeneral(3, ii) = TabGeneral(3, i): TabGeneral(4, ii) = TabGeneral(4, i)
TabGeneral(0, i) = Tmp1: TabGeneral(1, i) = Tmp2: TabGeneral(2, i) = Tmp3: TabGeneral(3, i) = Tmp4: TabGeneral(4, i) = Tmp5
End If
Next ii
iii = iii + 1
Next i
TheUnicatorAdditionator
End Sub
Sub TheUnicatorAdditionator()
Dim ColArticle As New Collection
Dim TabTotal() As Variant
Dim i As Long, y As Long
Dim Item As Variant
Dim SumUnitaire As Double, SumQuantite As Double, SumTotalDay As Double
Dim ArticleName As String
For i = LBound(TabGeneral, 2) To UBound(TabGeneral, 2)
On Error Resume Next
ColArticle.Add TabGeneral(0, i), CStr(TabGeneral(0, i))
Next i
For Each Item In ColArticle
For i = LBound(TabGeneral, 2) To UBound(TabGeneral, 2)
If Item = TabGeneral(0, i) Then
ArticleName = TabGeneral(1, i)
SumUnitaire = SumUnitaire + TabGeneral(2, i)
SumQuantite = SumQuantite + TabGeneral(3, i)
SumTotalDay = SumTotalDay + TabGeneral(4, i)
End If
Next
ReDim Preserve TabTotal(5, y)
TabTotal(0, y) = Item
TabTotal(1, y) = ArticleName
TabTotal(2, y) = SumUnitaire
TabTotal(3, y) = SumQuantite
TabTotal(4, y) = SumTotalDay
y = y + 1
SumUnitaire = 0
SumQuantite = 0
SumTotalDay = 0
Next
With Sheets('fin de semaine')
.Range('A2').Resize(UBound(TabTotal, 2) + 1, UBound(TabTotal, 1)) = Application.Transpose(TabTotal)
End With
End Sub