Mettre le compteur à zéro

oui, je sais bien : dans ce post, je vous avais écrit :

pour moi, utiliser les crochets est juste l’utilisation d’une notation abrégée, qui est vraiment
très pratique ; je continuerai ainsi car j’en ai l’habitude, et que toutes les fois où j’ai utilisé
cette notation, je n’ai jamais eu de problème, quelle que soit la version d’Excel utilisée :
2003 ; 2007 ; 2010 ; 2019 ; 2021 (ma version actuelle). :blush:

ainsi, jusqu’à maintenant, avec cette notation que vous qualifiez de dangereuse, je n’ai
jamais eu de cas où cette notation avec crochets me retourne un résultat autre que
celui attendu (j’croise les doigts pour que ça continue). :blush:

quand VBA rencontre [I11:S62].ClearContents, il fait appel à la fonction Evaluate(),
qui ne fait que la traduire en Range("I11:S62").ClearContents, ce qui revient donc
au même ; la seule différence concerne la vitesse :

dans une très grande boucle de par exemple 50 000 itérations, ça pourrait être un peu
plus rapide de ne pas utiliser la notation abrégée, car dans le cas où le code VBA est
interprété et non pas compilé, ça évite 50 000 appels à la fonction Evaluate() ; de plus,
si on a un PC puissant (avec un processeur Intel i7 ou un AMD Ryzen 7, et une RAM
d’au moins 16 Go)
, c’est très rapide, même s’il y a 50 000 itérations.

j’ai une préférence pour la notation abrégée car comme son nom l’indique, c’est plus court
(à écrire et à lire) ; pour moi, ça améliore la lisibilité d’un code VBA ; c’est évidemment un
choix personnel ; si vous préférez éviter cette notation, vous êtes bien sûr libre de ne pas
l’utiliser ; merci quand même pour votre indication. :slightly_smiling_face: