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 SubJ'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 !
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
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 Sub1- 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 !