Bonjour à tous,
BsAlv : non ce code est vraiment plus lent, 30 secondes pour nettoyer 1,000 names sur une première ouverture du fichier vs 10 secondes avec le code de Dan pour en nettoyer 10,000.
Dan : Oui, je l'ai adapté, mais je conserve votre architecture. J'ai notamment besoin du statusbar pour connaître l'avancer du cleaning et de passer les noms gardés en visible pour pouvoir les consulter dans un name manager. J'ai redéclaré la variable i as long comme vous me l'avez indiqué.
Je n'utilise pas le .name.count parce que j'ai observé que plus l'échantillon de names prit est grand, plus le traitement est long. Je développe, pour un excel avec 75,000 names : pour traiter 10,000 names (première ouverture de l'excel) sur un traitement de 10,000 names, la macro met 10 secondes. En revanche, pour traiter 10,000 names (première ouverture de l'excel) sur un ensemble de 75,000 names, la macro met plus de deux minutes ! Suis-je clair ?
J'ai testé de laisser la macro en manuel à la fin de son exécution, mais ça ne change pas. Son temps d'exécution double à chaque fois que je la relance, mais redevient rapide (10 secondes pour 10,000 names) lorsque je ferme et rouvre le fichier.
Merci pour votre aide !