Afficher des données en fonction de la date

wylkiz21

XLDnaute Nouveau
Bonjour,

Toujours néophyte, mais faisant quelques progrès grâce à l'aide précieuse que l'on trouve au sein du forum, je viens vous voir pour une question épineuse, en VBA Excel pour 2003. Comment afficher uniquement les données qui ont moins de 3 mois, dans une ListBox (table excel) ?

Voici mon programme :

Code:
Private Sub UserForm_Initialize()
   
    '##### INITIALISATION DE LA LISTBOX WIDTH 490 ######
    ListBox1.ColumnCount = 4
    ListBox1.ColumnWidths = "50;320;60;60"
     
   
    '##### Chercher les dernières consultations sur les trois derniers mois ####
    
    Dim Plage As Range, cell As Range
    Dim Recherche As String, FirstAdresse As String
    Dim Ligne As Integer, N As Integer
    Dim C As Range
    Dim CreateDate As Date
    
    ListBox1.Clear
    N = 0
    
    CreateDate = Format(Now(), "DD/MM/YYYY")
        
    Recherche = CreateDate
        
    Range("A1").Select
    Ligne = Sheets("Description").Range("A" & "65536").End(xlUp).Row
    Set Plage = Sheets("Description").Range("b" & "2:" & "b" & Ligne)
    With Plage
    Set C = .Find(What:=CDate(Recherche), LookIn:=xlFormulas, LookAt:=xlPart)
    If Not C Is Nothing Then
    FirstAdresse = C.Address
     
    Do
                   
        ListBox1.AddItem C.Offset(0, 0), N
        ListBox1.List(N, 0) = C.Offset(0, 1)
        ListBox1.List(N, 1) = Left(C.Offset(0, 4), 70) & "..."
        ListBox1.List(N, 2) = C
        ListBox1.List(N, 3) = C.Offset(0, 3)
            
        N = N + 1
                  
    Set C = .FindNext(C)
    Loop While Not C Is Nothing And C.Address <> FirstAdresse
    
    Else
    
    MsgBox Recherche
        
    End If
    
    
    
    End With
    

End Sub

Il n'affiche que les données de ce jour. Or, ce que je souhaiterai, c'est que la listbox affiche les données qui ont moins de 3 mois. Je me torture l'esprit, et ne vois pas comment procéder.

Je vous joins également le fichier pour une meilleure visibilité.

Comptant sur votre participation,:)
 

Pièces jointes

  • Essai registre.xls
    40 KB · Affichages: 138

wylkiz21

XLDnaute Nouveau
Re : Afficher des données en fonction de la date

Avec un peu de ténacité:)cool:), j'ai trouvé une solution (certainement perfectible), que je donne au cas où cela intéresserait quelqu'un :

Code:
    '##### INITIALISATION DE LA LISTBOX WIDTH 490 ######
    ListBox1.ColumnCount = 4
    ListBox1.ColumnWidths = "50;320;60;60"
     
   
    '##### Chercher les dernières consultations sur les trois derniers mois ####
    
    Dim Plage As Range, Cell As Range
    'Dim Recherche As String, FirstAdresse As String
    Dim Ligne As Integer, N As Integer
    'Dim C As Range
    Dim Date1 As Date
    
    Ligne = Sheets("Description").Range("A" & "65536").End(xlUp).Row
    Set Plage = Sheets("Description").Range("b" & "2:" & "b" & Ligne)
        
    Date1 = Format(Now(), "DD/MM/YYYY")
            
    Resultat = Date1 - 90
    
        
    For Each Cell In Plage
    
    If Cell.Value > CDate(Resultat) Then
     
    ListBox1.AddItem Cell.Offset(0, 0), N
    ListBox1.List(N, 0) = Cell.Offset(0, 1)
    ListBox1.List(N, 1) = Left(Cell.Offset(0, 2), 70) & "..."
    ListBox1.List(N, 2) = Cell
    ListBox1.List(N, 3) = Cell.Offset(0, 3)
        
    End If
          
    Next Cell

Je suis toujours preneur d'autres solutions, plus "conforme" au règle de l'art en la matière :)
 

wylkiz21

XLDnaute Nouveau
Re : Afficher des données en fonction de la date

Merci, merci !!!! Mais l'idée m'est venue ce matin, en essayant de simplifier la démarche ... qui s'apparente plus à du bricolage qu'à de l'art ! Mais, en tant que néophyte, une certaine fierté m'envahit ;)
 

Discussions similaires

Réponses
17
Affichages
849

Statistiques des forums

Discussions
312 321
Messages
2 087 246
Membres
103 498
dernier inscrit
FAHDE