Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Tri par date via combobox

netparty

XLDnaute Occasionnel
Bonjour à tous

J'ai un formulaire dans lequel j'affiche mes données et je dispose d'un comboxbox pour choisir les dates.

J'aimerais quand je choisis une date dans le combobox qu'il m'affiche uniquement les données avec la date choisie.

Merci d'avance à tous

bonne journée
 

Pièces jointes

  • test.xlsm
    296.1 KB · Affichages: 16

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Netparty, bonjour le forum,

en pièce jointe ton fichier modifié avec le code ci-dessous :

VB:
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
Le fichier :
 

Pièces jointes

  • Netparty_ED_v01.xlsm
    342.7 KB · Affichages: 10

netparty

XLDnaute Occasionnel
Bonjour Robert

Merci pour ton aide je teste cela

bonne fin de journée
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…