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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| Sub essai()
Dim Tablo(), Tablo2(), Tablo3(), Fl As Worksheet, Derlg As Long, x As Long
Dim NbArt As Long, z As Long, plage As Range, Rch As Range
Dim Un, cle, montant As Currency
Set Un = CreateObject("Scripting.dictionary")
NbArt = 0: z = 1
montant = 0
For Each Fl In Worksheets
If Fl.Name <> "resume" Then
Derlg = Fl.Range("A" & Fl.Rows.Count).End(xlUp).Row
NbArt = NbArt + Derlg - 1
End If
Next Fl
ReDim Tablo(1 To NbArt, 1 To 2)
For Each Fl In Worksheets
If Fl.Name <> "resume" Then
Derlg = Fl.Range("A" & Fl.Rows.Count).End(xlUp).Row
For x = 2 To Derlg
Tablo(z, 1) = Fl.Range("A" & x)
Tablo(z, 2) = Fl.Range("B" & x)
z = z + 1
Next x
End If
Next Fl
z = 1
ReDim Preserve Tablo2(1 To 1)
On Error Resume Next
For x = 1 To UBound(Tablo)
If Tablo(x, 1) <> "" Then
Un.Add Tablo(x, 1), CStr(Tablo(x, 1))
cle = CStr(Tablo(x, 1))
If Err = 0 Then
Tablo2(z) = Tablo(x, 1)
z = z + 1
ReDim Preserve Tablo2(1 To z)
End If
End If
Err.Clear
Next x
ReDim Preserve Tablo3(1 To UBound(Tablo2), 1 To 2)
Set Un = Nothing
For x = 1 To UBound(Tablo3, 1)
Tablo3(x, 1) = Tablo2(x)
For z = 1 To UBound(Tablo, 1)
If Tablo(z, 1) = Tablo3(x, 1) Then
montant = montant + Tablo(z, 2)
Tablo3(x, 2) = montant / 6
End If
Next z
montant = 0
Next x
Sheets("resume").Range(Cells(2, 1), Cells(UBound(Tablo3, 1), 2)) = Tablo3
For Each Fl In Worksheets
Derlg = Fl.Range("A" & Fl.Rows.Count).End(xlUp).Row
For x = 2 To Derlg
Set plage = Fl.Range("A2:A" & Derlg)
Set Rch = plage.Find(Sheets("resume").Range("A" & x))
If Not Rch Is Nothing Then
If Rch(1, 2) > Sheets("resume").Range("C" & x) Or Rch(1, 2) < Sheets("resume").Range("D" & x) Then
Sheets("resume").Range("E" & x) = "ECART IMPORTANT": Exit For
Else
Sheets("resume").Range("E" & x) = "ECART CORRECT"
End If
End If
Next x
Next Fl
End Sub |
Partager