Private Sub ComboBox1_Change()
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim DC As Long 'déclare la variable BC (Date Combobox)
Dim DT As Long 'déclare la variable DT (Date Tableau)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable J (incrément)
Dim J As Byte 'déclare la variable J (incrément)
Me.ListBox1.Clear 'vide la ListBox1
If Me.ComboBox1.Value = "" Then Exit Sub 'si la ComboBox1 est effacée, sort de la procédure
Select Case Me.ComboBox1.Value 'agit en fonction de la valeur de la ComboBox1
Case "*" 'cas "*"
Me.ListBox1.List = TblBD: Exit Sub 'ListBox1.complète, sort de la procédure
Case "-" 'cas "-"
For I = LBound(TblBD) To UBound(TblBD) 'boucle 1 : sur toutes les lignes I du tableau tblBD
If TblBD(I, 80) = "-" Then 'condition : si la donnée ligne I colonne 80 est égale à "-"
K = K + 1 'incrémente K
ReDim Preserve TL(1 To UBound(TblBD, 2), 1 To K) 'redimensionne le tableau des lignes TL (autant de lignes que tbkBD a de colonnes, K colonnes)
For J = 1 To UBound(TblBD, 2) 'boucle 2 sur toutes les colonnes J du tableau tblBD
TL(J, K) = TblBD(I, J) 'récupère dans la ligne J de Tl la donnée en colonne J de tblBD (=> Transposition)
Next J 'prochaine colonne de la boucle 2
End If 'fin de la condition
Next I 'prochaine ligne de la boucle 1
If K > 0 Then Me.ListBox1.List = Application.Transpose(TL) 'si K est supérieure à zéro alimente la Listbox1 avec le trableau TL transposé
Case Else 'tous les autres cas
DC = CLng(DateSerial(Year(Me.ComboBox1.Value), Month(Me.ComboBox1.Value), Day(Me.ComboBox1.Value))) 'définit la date de la ComboBox1 (convertie en entier long)
For I = LBound(TblBD) To UBound(TblBD) 'boucle 1 : sur toutes les lignes I du tableau tblBD
If TblBD(I, 80) = "-" Then GoTo suite 'si la donnée ligne I colonne 80 est égale à "-", va à l'étiquette "suite"
DT = DateSerial(Year(TblBD(I, 80)), Month(TblBD(I, 80)), Day(TblBD(I, 80))) 'définit la date du tableau DT
If DC = DT Then 'condition : si la date de la Combobox1 DC est égale à la date du tabelau DT
K = K + 1 'incrémente K
ReDim Preserve TL(1 To UBound(TblBD, 2), 1 To K) 'redimensionne le tableau des lignes TL (autant de lignes que tbkBD a de colonnes, K colonnes)
For J = 1 To UBound(TblBD, 2) 'boucle 2 sur toutes les colonnes J du tableau tblBD
TL(J, K) = TblBD(I, J) 'récupère dans la ligne J de Tl la donnée en colonne J de tblBD (=> Transposition)
Next J
End If 'prochaine colonne de la boucle 2
suite: 'étiquette
Next I 'prochaine ligne de la boucle 1
If K > 0 Then Me.ListBox1.List = Application.Transpose(TL) 'si K est supérieure à zéro alimente la Listbox1 avec le trableau TL transposé
End Select 'fin de l'action en fonction de la valeur de la ComboBox1
End Sub