Microsoft 365 [RESOLU] Filtrer les résultats d'une listbox sur date

ivan27

XLDnaute Occasionnel
Bonsoir à tous,

En pièce jointe un formulaire aimablement fournit par Jacques Boisgontier.
Je souhaiterais ajouter un filtre sur la colonne date de la listbox. Exemple en pièce jointe. Filtre par défaut sur la date du jour.
Merci d'avance pour votre aide.
Bonne fin de soirée
Ivan
 

Pièces jointes

  • ListBox2.xlsm
    674.1 KB · Affichages: 18
  • formulaire.png
    formulaire.png
    44.4 KB · Affichages: 14
Dernière édition:

CHALET53

XLDnaute Barbatruc
Bonjour
Avec un rajout de 2 pgm :
Dans L'usf derrière Userform_Initialize : Tri (avec les paramètres du tri (notamment n° col et ascendant ou descendant)
Moule 1 : TriCD avec les paramètres (programme réalisé par une personne de ce forum dont j'ai oublié le nom : merci à lui)

a+
 

Pièces jointes

  • Ivan27 ListBox2.xlsm
    678.7 KB · Affichages: 17

ivan27

XLDnaute Occasionnel
Bonjour le forum,
CHALET53, merci beaucoup pour ta proposition mais je n'arrive pas à utiliser le code que tu m'as transmis.
Pourrais-tu me montrer comment incorporer ton code dans l'usf et comment le lier aux 2 textbox "date de début" et "date de fin" ?
Bien cordialement et bon dimanche.
Ivan
 

CHALET53

XLDnaute Barbatruc
Dans le programme associé au Userform RechIntuit :
Juste derrière le programme Sub Userform_Initialize et avant le programme Sub EnTeteListBox, j'ai inséré le programme Sub tri ()
Sub tri()
'Stop
If Me.ListBox1.ListCount < 1 Then Exit Sub
col = 2
Dim a()
a = Me.ListBox1.List
nbcol = UBound(a, 2) - LBound(a, 2) + 1
Call TriCD(a(), UBound(a), col - 1, True, nbcol)
Me.ListBox1.List = a
End Sub
Dans le module 1, j'ai placé le programme TriCD

Sub TriCD(table(), xn, col, ordre, nbcol)
'Stop
ecart = xn ' tri shell
Do While ecart >= 1
ecart = ecart \ 2
inv = True
Do While inv
inv = False
For i = 0 To xn - ecart
j = i + ecart
If ordre Then
X = (table(i, col) > table(j, col))
Else
X = (table(i, col) < table(j, col))
End If
If X Then
inv = True
For C = 0 To nbcol - 1
temp = table(j, C): table(j, C) = table(i, C): table(i, C) = temp
Next
End If
Next
Loop
Loop
' Stop
End Sub

J'avais peut-être mal compris ce que tu voulais faire et notamment ceci :

Pourrais-tu me montrer comment incorporer ton code dans l'usf et comment le lier aux 2 textbox "date de début" et "date de fin" ?
 

ivan27

XLDnaute Occasionnel
Re bonjour tout le monde, CHALET53,
Désolé si je n'ai pas été suffisamment précis.
J'ai ajouté 2 textbox que je souhaiterais utiliser pour définir une période.
Seuls les enregistrement de la période spécifiée doivent s'afficher dans la listbox.
Ivan
 

CHALET53

XLDnaute Barbatruc
re,
Le tableau est construit en prenant l'intégralité de la feuille BD (ligne 2 à dernière ligne et colonne 1 à dernière colonne ). La sélection que tu veux demande de faire un choix portant sur les lignes comprises dans un intervalle de dates .
La conception du programme est un peu compliquée pour moi : désolé
a+
 

ivan27

XLDnaute Occasionnel
Re bonjour,
Merci d'avoir essayé.
Et penses-tu que ma demande serait réalisable si la listbox ne pointe pas vers la BD principale mais vers une autre page sur laquelle on retrouverait uniquement les lignes filtrées ?
Ivan
 

ChTi160

XLDnaute Barbatruc
Bonjour ivan27
Bonjour le Fil ,le Forum

j'ai suivi ce fil et comme CHALET53
je me suis posé la question du Comment utiliser les Deux TextBox
il faut y mettre des Dates mais comment (Calendrier , Liste de Dates etc etc) ?

as tu une idée de ce que tu veux ?
Jean marie
 

CHALET53

XLDnaute Barbatruc
J'ai bricolé un truc d'amateur (pas très fier de moi) sur la base d'une feuille Bis
Je ne fais pas de contrôle sur la cohérence des dates
Notre ami Chti va te concocter un truc aux petits oignons
 

Pièces jointes

  • Ivan27 ListBox2 bis.xlsm
    684.7 KB · Affichages: 11

Discussions similaires

Réponses
2
Affichages
110

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83