Type MyValeur
A As Double
B As Double
C As Double
D As Double
E As Double
F As Double
G As Double
H As Double
End Type
Type MyProduct
A As Double
B As Double
C As Double
D As Double
E As Double
F As Double
G As Double
H As Double
End Type
Sub test()
Dim Arr(), Sh As Worksheet, Trouve As Range
Dim DerLig As Long, C As Range, Arr1()
Dim MyVal As MyValeur, MyProD As MyProduct
Arr = Array("Bon 3%", "BON CADEAU", "BON REDUCTION", "CB MANUELLE", _
"ESPECES", "FACTURETTE MANUELLE", "OD", "BALANCE")
Arr1 = Array("A16:B16", "D16:E16", "G16:H16", "J16:K16", _
"A21:B21", "D21:E21", "G21:H21", "J21:K21")
For Each Sh In ThisWorkbook.Worksheets
If Sh.Name <> "RECAP" Then
DerLig = Sh.Range("F:F").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
With Sh.Range("F4:F" & DerLig)
For Each C In .Cells
Select Case UCase(C.Value)
Case Is = Arr(0)
MyVal.A = MyVal.A + C.Offset(, -1).Value
MyProD.A = MyProD.A + C.Offset(, -3).Value
Case Is = Arr(1)
MyVal.B = MyVal.B + C.Offset(, -1).Value
MyProD.B = MyProD.B + C.Offset(, -3).Value
Case Is = Arr(2)
MyVal.C = MyVal.C + C.Offset(, -1).Value
MyProD.C = MyProD.C + C.Offset(, -3).Value
Case Is = Arr(3)
MyVal.D = MyVal.D + C.Offset(, -1).Value
MyProD.D = MyProD.D + C.Offset(, -3).Value
Case Is = Arr(4)
MyVal.E = MyVal.E + C.Offset(, -1).Value
MyProD.E = MyProD.E + C.Offset(, -3).Value
Case Is = Arr(5)
MyVal.F = MyVal.F + C.Offset(, -1).Value
MyProD.F = MyProD.F + C.Offset(, -3).Value
Case Is = Arr(6)
MyVal.G = MyVal.G + C.Offset(, -1).Value
MyProD.G = MyProD.G + C.Offset(, -3).Value
Case Is = Arr(7)
MyVal.H = MyVal.H + C.Offset(, -1).Value
MyProD.H = MyProD.H + C.Offset(, -3).Value
End Select
Next
End With
End If
Next
Application.EnableEvents = False
With Worksheets("RECAP")
.Range(Arr1(0))(1, 2) = MyVal.A
.Range(Arr1(0))(1) = MyProD.A
.Range(Arr1(1))(1, 2) = MyVal.B
.Range(Arr1(1))(1) = MyProD.B
.Range(Arr1(2))(1, 2) = MyVal.C
.Range(Arr1(2))(1) = MyProD.C
.Range(Arr1(3))(1, 2) = MyVal.D
.Range(Arr1(3))(1) = MyProD.D
.Range(Arr1(4))(1, 2) = MyVal.E
.Range(Arr1(4))(1) = MyProD.E
.Range(Arr1(5))(1, 2) = MyVal.F
.Range(Arr1(5))(1) = MyProD.F
.Range(Arr1(6))(1, 2) = MyVal.G
.Range(Arr1(6))(1) = MyProD.G
.Range(Arr1(7))(1, 2) = MyVal.H
.Range(Arr1(7))(1) = MyProD.H
End With
Application.EnableEvents = False
End Sub