Bonjour,
Je recherche des valeurs similaires dans une (longue)colonne; cette valeur se retrouve approximativement toutes les 20 lignes.
Avec .Find, je me dirige directement vers la valeur ad hoc, épargnant ainsi de visiter toutes les cellules comme le ferait une boucle For Next... et pourtant la macro avec .Find prend 1 minute quand celle avec une boucle prend 4 secondes !
Code avec .Find :
et code avec boucle :
Quelqu'un a-t-il une explication ?? c'est d'autant plus étrange que lorsque l'on fait un pas à pas détaillé, la méthode .Find est beaucoup plus directe et rapide puisqu'elle ne traite qu'une valeur sur 20...
Merci et bon week-end à tous
Je recherche des valeurs similaires dans une (longue)colonne; cette valeur se retrouve approximativement toutes les 20 lignes.
Avec .Find, je me dirige directement vers la valeur ad hoc, épargnant ainsi de visiter toutes les cellules comme le ferait une boucle For Next... et pourtant la macro avec .Find prend 1 minute quand celle avec une boucle prend 4 secondes !
Code avec .Find :
With Sheets("Feuil1").Range("C10:C68000")
Set c = .Find(Range("C4").Value, LookIn:=xlValues)
Do While Not IsEmpty(c)
heure = c.RowLoop
Cells(jour, 8).Value = c.Offset(0, -1)
Cells(jour, 11).Value = cherche_f (heure, jour)
jour = jour + 1
Set c = .FindNext(c)
End With
et code avec boucle :
For heure = 10 To 68000
If Cells(heure, 3).Value = Range("C4") Then: _
Cells(jour, 8).Value = Cells(heure, 2) - 0: _
Cells(jour, 11).Value = cherche_f (heure, jour): _
jour = jour + 1
Next heure
Quelqu'un a-t-il une explication ?? c'est d'autant plus étrange que lorsque l'on fait un pas à pas détaillé, la méthode .Find est beaucoup plus directe et rapide puisqu'elle ne traite qu'une valeur sur 20...
Merci et bon week-end à tous