Bonjour, j’ai une macro qui fonctionne bien mais qui est lente. Ce fichier pourrait aller jusqu’à 15000 lignes. De plus, comme j’ajoute des lignes en-dessous, la macro ne semble pas partir de la cellule non vide mais plutôt d’en haut (ex. No client)… parce que j’ajoute des lignes, il n’y a que l’adresse courriel qui indiqué et la macro doit faire le reste. Alors, si la partie supérieure est complété, il n’aurais qu’à partir de la première cellule non vide.
Je n’ai pas mis le nombre total de lignes dans le fichier. Lorsque je l’exécute dans mon fichier, il tourne et tourne et cela prend un certain temps et qui est, à mon avis, beaucoup trop long parce que souvent, je ne sais plus si Excel va planter… test macro.xlsm (136,0 Ko)
Effectivement avec 2 boucles ça devait être l’enfer
Une seule suffit pour parcourir la bdProduits et on effectue un Find pour la ligne de l’adresse mail
Le temps d’exécution pour les 1186 lignes de l’onglet « bdProduitsClients » et 760 lignes onglet « bdClients » est pour moi de 10 secondes
Si je multiplie par 10 le nombre de ligne à chaque onglet cela ferait :
10 secondes * 10 + 10 * 10 soit 200 secondes
Soit pour 10 000 lignes dans chaque onglet environ moins de 3 minutes
Ce n’est pas du tout rédhibitoire comme temps de traitement
J’ai rajouté des instructions pour faire démarrer ce traitement à partir de la première ligne qui colonne R onglet « bdProduitsClients » n’a pas de donnée
Ainsi pour chaque traitement ne pas recommencer à partir de la ligne 2 pour cet onglet
En analysant tes boucles je me suis aperçu que chacune d’elle allait jusqu’à la dernière ligne même si onglet « bdProduitsClients » la mise à jour était réalisée donc inutilité de poursuivre celle de cet onglet
J’ai rajouté une ligne d’instruction pour en sortir dés que la ligne à alimenter avait les données à lui mettre
Gain de temps supplémentaire de 10 secondes à 5 secondes pour le même nombre de lignes à traiter pour les 2 onglets
Cette nouvelle version adaptée dans ce esprit avec l’évolution précédente intégrée
merci beaucoup de votre aide. Cependant, quand j’ajoute des lignes en-dessous, la macro ne fonctionne plus pour les cellules que j’ajoute. test macro (1).xlsm (156,0 Ko)
J’aimerais ajouter un petit quelque chose à ma demande. Je compile des informations avec une autre macro, sauf quelle ne rempli pas automatiquement ces colonnes. Alors, j’aimerais ajouter cette macro à celle que j’ai déjà. Comme je compile des bons de commande un à un, je dois faire la macro à chaque fois que j’ajoute un bon de commande. Voilà
« j’aimerais ajouter cette macro à celle que j’ai déjà »
Tu peux la rajouter à la fin de ta procédure soit en recopiant toutes les lignes (sans les lignes Sub Test() et End Sub) à la fin avant le End Sub soit en créant celle-ci à part en l’état (avec les lignes Sub Test() et End Sub) et de mettre avant le End Sub de celle que tu utilises la ligne suivante :
Run « Test »
si le nom de cette macro reste : Sub Test()
sinon
Run « le nom de la macro »
Attention la structure des données doit être à l’identique attribution des colonnes et des noms d’onglets si tu veux obtenir le même résultat
Si souci envoies moi l’ensemble avec quelques données non confidentielles
Je vous remercie beaucoup, elle fonctionne. 2 petites choses, elle est trop longue pour moi… je sais 45 secondes (je l’ai chronométré lol)… ce n’est pas long, mais quand j’en ai plusieurs à faire et que j’attends que la macro s’exécute… Je ne sais pas trop pourquoi elle est aussi lente…
2. Une autre chose ( tant qu’à y être lol), j’ai un numéro dans la bdClients (colonne C), qui lorsque la macro va l’a chercher, ne l’a copie pas correctement.
Encore une fois, je vous remercie beaucoup parce que je passe énormément de temps à essayer de la faire fonctionner et je n`y arrive pas. test macro (4).xlsm (919,7 Ko)
Ci-joint une nouvelle version
Sont traitement demande 5 secondes environ
Pour cela j’ai modifié son approche et complété sa structure de
Onglet « bdClients » colonne W le numéro de la ligne obtenu par formule sauf la première ligne 2 écrit en dur (ne pas oublier de les prolonger par copier/coller si plus de lignes)
Ajout d’un onglet « Correspondance » qui par formule fait le lien entre les adresse url et ces numéros de lignes
Les 2 premières colonnes sont reliées à l’onglet « bdClients » la troisième à l’onglet « bdProduitsClients » la quatrième affecte le numéro de la ligne de l’onglet « bdClients » à l’adresse url de la colonne précédente
Fais des tests et dis moi
J’ai mis en format nombre sans décimal la colonne R de l’onglet « bdProduitsClients » pour l’affichage correct des nombres de la colonne C de l’onglet « bdClients »
Bonjour
J avoue que je t avais complètement oublié
23 jours sans nouvelle l usure du temps à eu raison de ma mémoire
Vaut mieux tard que jamais
Ravi que cela te convienne je ne sais plus quoi mais ravi quand même
N oublies pas de valider ma réponse c est bien appréciable
Au plaisir de te lire à nouveau