Une boucle plus rapide que .Find !

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Wylsonn

XLDnaute Nouveau
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 :

With Sheets("Feuil1").Range("C10:C68000")
Set c = .Find(Range("C4").Value, LookIn:=xlValues)

Do While Not IsEmpty(c)
heure = c.Row
Cells(jour, 8).Value = c.Offset(0, -1)
Cells(jour, 11).Value = cherche_f (heure, jour)
jour = jour + 1
Set c = .FindNext(c)​
Loop

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
772
Réponses
4
Affichages
636
Réponses
4
Affichages
512
Réponses
10
Affichages
543
Réponses
16
Affichages
1 K
Retour