code pour recherche date

jool

XLDnaute Junior
Bonjour,

J'ai un tableau qui contient des dates jj/mm/aaaa.

J'ai un code, qui me permet de rechercher par le biais d'un textbox, la date entrée dans celui-ci. Mais je souhaiterais entrer dans le Textbox une date au format mm/aaaa pour effectuer une reherche mensuel.

voici le code actuel :

Set c = .Find(CDate(Me.TextBox1), LookIn:=xlValues, LookAt:=xlPart)

Merci
 

Hulk

XLDnaute Barbatruc
Re : code pour recherche date

Hello,

Voici une macro qui va chercher la date voulue dans la feuille, si cette date exixte.

Attention le format de tes cellules doit être -> mm.aaa.

Vois ce que tu peux faire avec ça.

A placer dans le code de la feuille avec un CommandButton.
Code:
Sub RechercheDate()

    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim x As Variant
    Dim MaDate As Date

    On Error Resume Next
    
    MaDate = InputBox("Saisissez une date au format mm.aaaa", Title:="Recherche d'une Date")
    If MaDate = 0 Then Exit Sub
    
    For Each Wb In Application.Workbooks
        For Each Ws In Wb.Worksheets
            For Each x In ThisWorkbook
                Set x = Ws.Cells.Find(MaDate)
                    If Not x Is Nothing Then
                        Ws.Select
                        x.Select
                    End If
            Next x
        Next Ws
    Next Wb

End Sub
Et pour le code du CommandButton...
Code:
Private Sub CommandButton1_Click()
RechercheDate
End Sub
Cdt, Hulk.

Edit: Slt Bqtr !
 
Dernière édition:

jool

XLDnaute Junior
Re : code pour recherche date

Merci,

Si je comprend bien, je ne peux pas effectuer de recherche si mes dates ne sont pas au même format ?

ex : si je mets 05/2009 dans mon textbox de recherche, je ne peux pas trouver : 02/05/2009 ?
 

JNP

XLDnaute Barbatruc
Re : code pour recherche date

Salut le forum :),
Si j'ai bien compris la question, il te suffit de faire une identité sur Month() et Year(), type
Code:
If Year(Cellule) = Year(TextBox) And Month(Cellule) = Month(TextBox)
en décrivant toute la zone de cellules qui t'intéresse au lieu d'utiliser Find.
Bon WE :cool:
 

jool

XLDnaute Junior
Re : code pour recherche date

Là j'avoue ne pas trop comprendre. Voici mon code de recherche si cela peut aider.

Dim c As Range, premier As String, i As Long

With ListBox1
.Clear
.ColumnCount = 4
End With
Text = Me.TextBox1
If Text = "" Then Exit Sub
With Range("A2:D2" & Range("A65536").End(xlUp).Row)
Set c = .Find(CDate(Me.TextBox1), LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
premier = c.Address
Do
Me.ListBox1.AddItem c.Value
Me.ListBox1.Column(1, i) = c.Offset(0, 1).Value
Me.ListBox1.Column(2, i) = c.Offset(0, 2).Value
Me.ListBox1.Column(3, i) = c.Offset(0, 3).Value
Set c = .FindNext(c)
i = i + 1
Loop While Not c Is Nothing And c.Address <> premier
End If
End With

If i = 0 Then MsgBox "La Date : " & Me.TextBox1 & " n'a pas été trouvée" & vbCrLf & "Modifiez la date", vbCritical, "Erreur :"

End Sub
 

bqtr

XLDnaute Accro
Re : code pour recherche date

Re, bonjour JNP, Hulk


jool t'as pas l'impression d'abuser un peu :mad:, hier soir je t'ai mis un fichier en PJ. Ce fichier fait ce que tu demandes. Tu entres une date sous la forme mm/yyyy dans le textbox et la listbox liste toutes les lignes de la feuille qui correspondent au mois et à l'année saisie.

Dans mon message de 14h06 (aujourd'hui) c'est ce que je te demande de faire, d'aller voir ta demande d'hier et de regarder le fichier.

A+
 

Discussions similaires

Réponses
12
Affichages
617
Réponses
5
Affichages
1 K
Réponses
3
Affichages
2 K

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso