Private Sub GO4_Click()
Dim Debut As String, Fin As String
Dim S As Double, Total As Double
Dim Nblg As Long, lig As Long, L As Long
Dim Cel As range, Plage As range
Dim Dico, Tablo, P, m
Dim e, j As Integer
Dim Nombre As Double
TotalBonMois = ""
ConsoMois.Clear
ConsoMois.ColumnCount = 9
Debut = Me.Date4Deb4
If Not IsDate(Debut) Then
MsgBox "Veuillez Choisir Une Date"
Exit Sub
End If
Fin = Me.Date4Fin
If Not IsDate(Fin) Then
MsgBox "Veuillez Choisir Une Date"
Exit Sub
End If
Application.ScreenUpdating = False
With fc
Nblg = .range("B" & .Rows.Count).End(xlUp).Row 'dernière ligne
Tablo = .range("A5:K" & Nblg).Value
Set Dico = CreateObject("Scripting.dictionary") 'dico des immat sans doublon
For i = LBound(Tablo, 1) To UBound(Tablo, 1)
If Tablo(i, 1) >= CDate(Debut) And Tablo(i, 1) <= CDate(Fin) And Tablo(i, 2) <> "" Then
If Not (Dico.Exists(Tablo(i, 3))) Then 'si c'est une nouvelle immat
Dico.Item(Tablo(i, 3)) = CInt(Tablo(i, 8)) 'on l'ajoute au dictionnaire avec le NbrBon comme valeur
Me.ConsoMois.AddItem 'on ajoutte dans la ListBox
For j = LBound(Tablo, 2) + 1 To UBound(Tablo, 2) 'qu'on remplit avec les 9 colonnes: B à J
Me.ConsoMois.List(lig, j - 2) = Tablo(i, j)
Next j
lig = lig + 1
Else 'l'immat a déjà été enregistrée
For j = 0 To Me.ConsoMois.ListCount - 1
If Me.ConsoMois.List(j, 1) = Tablo(i, 3) Then
Me.ConsoMois.List(j, 6) = CInt(Tablo(i, 8)) + Me.ConsoMois.List(j, 6) 'on met à jour le total dans la Listbox
Exit For
End If
Next j
End If
End If
Next i
j = ConsoMois.ListCount - 1
For e = 0 To j
Nombre = CDbl(ConsoMois.List(e, 6))
S = CDbl(S) + CDbl(Nombre)
Next
TotalBonMois = S
NbrL.Caption = ConsoMois.ListCount
End With
Application.ScreenUpdating = True
End Sub