Recherche date dans une feuille.

Didier972

XLDnaute Junior
Bonjour

Voilà, cela fait plusieurs jour que je cherche une solution, pour rechercher via une Macro

Soit avec le Calendar ou une textbox, ou même une inputbox, entrer une date faire la recherche sur une ligne et selectionner la date une fois trouvé. mais avec le format date cela s'avère plus difficile que je ne croyais.
Donc en cherchant j'ai trouvé quelques codes, mais ils ne fonctionnaient pas tous j'en ai gardé un qui trouve bien la date, mais il ne sélectionne pas la cellule et pour la suite j'aurais besoin que cette case soit sélectionnée.

Ci joint le code si quelqu'un à une idée. Merci d'avance.
Code:
Private Sub CB_OK2_Click()
Dim TheDate As Long, Index As Variant

    Range("A4").Select
TheDate = ActiveCell

    With Worksheets("Planning")
        Index = Application.Match(TheDate, .Range("C3:BDF3"), 0)
    End With
   
    If IsError(Index) Then
        MsgBox "Résultat négatif. Rien trouvé.", vbOKOnly + vbInformation, "Résultat"
    Else
        MsgBox "La date " & Format(TheDate, "dd/mm/yyyy") & " existe. Elle est représentée par " & _
        "l'item " & Index & " de la plage de cellules.", vbInformation + vbOKOnly, "Résultat"

   
    End If
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Recherche date dans une feuille.

Bonsoir Didier972,

Peut-être comme ceci :

Code:
Private Sub CB_OK2_Click()
Dim TheDate As Long, Index As Range

Range("A4").Select
TheDate = ActiveCell

    With Worksheets("Planning")
        Set Index = .Range("C3:BDF3").Find(CDate(TheDate), LookIn:=xlValues, lookat:=xlWhole)
    End With
    If Index Is Nothing Then
        MsgBox "Résultat négatif. Rien trouvé.", vbOKOnly + vbInformation, "Résultat"
    Else
        MsgBox "La date " & Format(TheDate, "dd/mm/yyyy") & " existe. Elle est représentée par " & _
        "l'item " & Index & " de la plage de cellules.", vbInformation + vbOKOnly, "Résultat"
        Index.Select
    End If
End Sub
Cordialement.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Recherche date dans une feuille.

Bonjour Didier, Papou-Net, bonjour le forum,

Une proposition en pièce jointe avec le code ci-dessous :

Code:
Sub Macro1()
Dim e As Variant 'déclare la variable e (Entrée)
Dim d As Date 'déclare la variable d (Date)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)


e = Application.InputBox("Tapez la date cherchée au format jj/mm/aa !", "RECHERCHE de DATE", Type:=2) 'définit l'entrée e
If e = "" Then Exit Sub 'si la boîte d'entrée n'est pas renseignée, sort de la procédure
If e = False Then Exit Sub 'si bouton annuler, sort de la procédure
d = CDate(e) 'définit la date d
Set r = Cells.Find(d, , xlFormulas, xlWhole) 'définit la recherche r
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    pa = r.Address 'définit l'adresse de la première occurrence trouvée
    Do 'exécute
        r.Select 'sélectionne l'occurrence trouvé
        'si "Oui" au message, redéfinit la recherche r (occurrence suivante), sinon, sort de la procédure
        If MsgBox("Chercher l'occurrence suivante ?", vbYesNo) = vbYes Then Set r = Cells.FindNext(r) Else Exit Sub
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
    MsgBox "Il n'y a plus d'occurrences de la date cherchée !" 'message
Else 'sinon (condition 1)
    MsgBox "La date cherchée n'existe pas !" 'message
End If 'fin de la condition
End Sub
Le fichier :
 

Pièces jointes

  • Didier_v01.xls
    57.5 KB · Affichages: 32

Discussions similaires

Statistiques des forums

Discussions
312 380
Messages
2 087 809
Membres
103 665
dernier inscrit
toutoun12