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
| Dim TblBD(), nomTableau, NbCol, ColDate, Dates()
Private Sub UserForm_Initialize()
nomTableau = "Tableau1"
TblBD = Range(nomTableau).Value
NbCol = Range(nomTableau).Columns.Count
ColDate = 2
EnteteListBox
'---Dates
Set d = CreateObject("scripting.dictionary")
ColDate = 2
For i = LBound(TblBD) To UBound(TblBD)
d(TblBD(i, ColDate)) = ""
Next i
Dates = d.keys
Tri Dates, LBound(Dates), UBound(Dates)
Me.ComboBox2.List = Dates: Me.ComboBox2 = Dates(0)
Me.ComboBox3.List = Dates: Me.ComboBox3 = Dates(UBound(Dates))
Filtre
Me.ComboTri.List = Application.Transpose(Range(nomTableau).ListObject.HeaderRowRange)
End Sub
Private Sub ComboBox2_click()
Filtre
End Sub
Private Sub ComboBox3_click()
Filtre
End Sub
Private Sub ComboBox1_click() ' alimentation ListBox
Filtre
End Sub
Sub Filtre()
Dim Tbl()
début = CDate(Me.ComboBox2)
fin = CDate(Me.ComboBox3)
n = 0
For i = LBound(TblBD) To UBound(TblBD)
If TblBD(i, ColDate) >= début And TblBD(i, ColDate) <= fin Then
n = n + 1: ReDim Preserve Tbl(1 To NbCol + 1, 1 To n)
For c = 1 To NbCol
Tbl(c, n) = TblBD(i, c)
Next c
End If
Next i
If n > 0 Then Me.ListBox1.Column = Tbl Else Me.ListBox1.Clear
End Sub |
Partager