Find + Date du jour = boucle infinie

Bonjour,

Après plusieurs heures de galère, j'ai réussi (je pense) à comprendre comment fonctionne le FindNext en VBA mais j'ai un soucis avec ma recherche sur une date.

Grossièrement, j'ai une liste variable d'items, dont des dates. J'aimerai récupérer ceux dont la date correspond à la date du jour.
J'ai donc initié un début de fonction findNext avec une boucle. problème, chaque cellule vide est considérée comme contenant la date du jour et me créer donc une boucle infinie.

Private Sub Worksheet_Activate()

    Worksheets("Accueil").Cells.ClearContents

    'déclaration des variables
    Dim R As Range
    Dim CAddress As String
    Dim I As Integer

    'Attribution des variables
    I = 0
    Set R = Worksheets("Bdd").Cells.Find(Today, LookIn:=xlFormulas, LookAt:=xlWhole)
    If R Is Nothing Then
           Sheets("Accueil").Cells(1, 1).Value = "Pas de départ"
    Else:

        CAddress = R.Address

        Do
        I = I + 1
        Sheets("Accueil").Cells(1, I).Value = R.Address
        Set R = Sheets("bdd").Cells.FindNext(R)
        Loop While Not R Is Nothing And R.Address <> CAddress

    End If

Sheets("Accueil").Activate

End Sub

J'ai essayé Avec xlFormulas? xlValues et la fonction date() à la place de today, à chaque fois il me sort toutes les cellules vides.

Quelqu'un aurait une idée ?

Merci beaucoup !

Bonjour,

ci-dessous votre code corrigé

Private Sub Worksheet_Activate()

    Me.Cells.ClearContents

    'déclaration des variables
    Dim cell As Range, cell1 As Range
    Dim I As Integer

    'Attribution des variables
    I = 0
    Set cell = Worksheets("Bdd").Cells.Find(Date, LookIn:=xlValues, LookAt:=xlWhole)
    If cell Is Nothing Then
           Me.Cells(1, 1).Value = "Pas de départ"
    Else
        Set cell1 = cell
        Do
            I = I + 1
            Me.Cells(1, I).Value = cell.Address
            Set cell = Worksheets("Bdd").Cells.FindNext(cell)

            Loop Until cell Is Nothing Or cell.Address = cell1.Address
    End If

End Sub

1- Votre procédure étant rattachée à votre feuille Accueil, il est plus simple d'utiliser l'objet "Me" qui représente donc cette feuille

2- Pour une recherche sur une date, un seul format possible : jj/mm/aaaa

3- Un tableau structuré est borné par définition et ne doit donc pas comporter de lignes vides

Merci beaucoup !

Donc si je comprends bien, l'erreur venait du formatage des cellules dates de mon fichier Bdd

Je pense avoir compris tout le code à part les arguments de .address(1,1,1,1) - Mais après manipulation, cela semble être une manière d'afficher différentes infos comme le nom du fichier et la feuille.

Je ne connaissais pas le .me (je débute) donc merci, je le garde en tête ;)
Pour ce qui est du tableau, effectivement j'avais peur de me taper des erreurs en ayant des lignes vides pendant mes tests. Mais il semble que cela soit magique et que le tableau s'agrandit automatiquement au fur et à mesure des nouvelles entrées.

Merci encore !

Rechercher des sujets similaires à "find date jour boucle infinie"