Une boucle plus rapide que .Find !

  • Initiateur de la discussion Initiateur de la discussion Wylsonn
  • Date de début Date de début

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 !

W

Wylsonn

Guest
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
917
Réponses
4
Affichages
738
Réponses
4
Affichages
589
Réponses
10
Affichages
646
Réponses
16
Affichages
2 K
Retour