Vitesse de réalisation d'un macro

Bonjour,

Je travaille sur une macro depuis quelques mois j'ai déjà pas mal avancé grâce au forum. Je vous mets en lien une partie du projet qui est le centre de ce projet.

En gros une image est associée à une référence si elle contient la référence, si l'image est au format bmp ou tif la cellule où est collé le nom de l'image est colorée d'une certaine couleur, si aucune image n'est trouvée la cellule où devrait être le nom de l'image est également colorée.

Malheureusement j'ai effectué des changements dans mon tableur pour le passer en tableau et ne travailler qu'avec le nom des colonnes. J'ai donc fait des modifications dans mon code et depuis catastrophe plus rien ne fonctionne. La macro est super lente, elle analyse les références pour chaque sous dossiers alors qu'à l'origine elle cherchait dans tous les dossiers puis elle passait au suivant si aucune image n'avait été trouvée sinon elle sortait de la boucle pour ne pas allonger la macro.

Quelqu'un arriverait-il à m'aider pour remettre à jour le code et qu'il soit fonctionnel, beaucoup m'ont déjà aidés et savent comment le code fonctionne a peu près, j'espère que ça facilitera la tache.

Merci d'avoir pris le temps de regarder
Bonne soirée

19diminuer.xlsx (10.01 Ko)

Bonjour,

Un fichier avec l'extension .xlsx ne peut contenir du code ...

Est-ce bien ce fichier que tu nous soumets ??

ric

Effectivement erreur de ma part

10diminuer.xlsm (10.01 Ko)

Bonjour,

Je travaille sur une macro depuis quelques mois j'ai déjà pas mal avancé grâce au forum.

Je ne vois aucune macro dans ton fichier ...

Est-ce qu'il faut comprendre que tu aimerais que l'on fasse tout le travail pour toi ?

ric

A tout vouloir faire trop vite on en oubli les basiques, voilà qui devrait faire l'affaire ...

14diminuer.xlsm (19.28 Ko)

Commencez par renseigner l'adresse d'un dossier avec des images ayant des noms qui comprennent les réf précisées dans le tableau

Bonjour,

J'ai un peu de difficulté pour la vitesse ...

J'ai une solution que je suis à composer ...

Je manque un peu d'expérience > ce qui occasionne des délais ...

Je reviens ...

ric

Bonjour,

Je n'ai pas tout compris la gestion des couleurs > m'enfin ...

Il y aura le chemin à adapter dans la macro lecture du module1 ...

Lecture des sous-dossiers inclus ...

Espérant un traitement un tantinet plus rapide sur des tonnes de lignes ...

ric

Ah oui je ne voyais pas ça comme ça, je souhaitais avoir des explications ... car là je m'y perds je ne retrouve plus mes variable de mon code original et surtout ce code s'intègre dans d'autres parties de code donc si je change tout de la façon de vous le présenter je repars de 0... désolé j'ai dû mal exprimer mon besoin mais je veux une amélioration de mon code avec

1) des explications du pourquoi du comment

2) on garde les mêmes variables actuellement utilisées

Bonjour,

Mais avant > est-ce que tu peux me dire si le traitement est plus rapide > zou pas ?

Ainsi que > si c'est plus rapide > est-ce que cette augmentation de vitesse vaut la peine de changer le code ?

Merci de ton commentaire ...

ric

Bonjour,

1) des explications du pourquoi du comment

Afin de tenter d'augmenter la vitesse de traitement > la liste des images dans le dossier et les sous-dossiers est lue et placée dans une variable tableau ...

Puis > pour chaque nom dans la colonne A > au lieu de rechercher dans le dossier et les sous-dossiers > la recherche se fait dans la variable tableau > ce qui devrait être plus rapide ...

Étant donné que je suis novice > il est possible que mon code ne soit pas aussi "propre" que celui d'un professionnel ...

Pour le changement des noms de variables > il faudrait que je revoie le code afin de voir où j'ai pu merder ...

ric

J'ai une erreur qui m'indique que le chemin n'est pas trouvé je me doute qu'il faut que je fasse qqc avec rep qui n'est jamais déclaré ?

Ou est ce que s'applique la macro est ce que tu prends en compte une valeur du tableau excel pour rechercher l'image ? Je n'arrive pas du tout à la mettre en place dans mon projet.

Bonjour,

Il faut utiliser le Module1 et tout son contenu > dans ce Module1> il faut renseigner la variable "LeChemin" avec le chemin où sont les images > tu peux écrire directement le chemin > ou l'adresse d'une cellule où ce chemin serait inscrit ...

Puis le Formulaire avec ses macros modifiées ...

Le déroulement :
- en cliquant sur le bouton du formulaire > il y a appel (Call ...) de la macro "Lecture" > laquelle parcourt le dossier et les sous-dossiers des images et place le chemin et le nom de chaque image dans la variable tableau "Data" ...
- de retour dans le formulaire > une boucle parcours les lignes de la colonne 1 du "Tableau1" et compare les noms des images (REF M3) avec celles contenues dans la variable tableau (c'est là qu'il y a gain de temps) ...
- puis > si l'image est trouvée > inscription dans la colonne "NOM DE L IMAGE ASSOCIEE" du "Tableau1" ...
- et l'on suit avec les traitements désirés ...

Dans le formulaire > j'ai oublié de désactiver " Sub ListeFichiers(Repertoire As String)" > cette macro n'est plus utilisée ...

ric

Merci @ric pour le temps que tu as passé mais la macro n'est finalement pas plus rapide et plante le Excel aussi, j'ainéanmoins une nouvelle idée inspirée de ce que tu m'as proposé pour avancer plus vite.

Bonjour,

Je suis désolé que le fichier que je t'ai fait parvenir ne fonctionne pas ou qu'il fasse planter ton Excel.

Celui-ci ...
https://forum.excel-pratique.com/excel/vitesse-de-realisation-d-un-macro-148583#p916020

Je viens à l'instant de le tester sous Excel 365 32 bits > Excel 365 64 bits et Excel 2007 32 bits > dans les 3 cas > le code a fonctionné correctement ...

Si tu crois que je peux faire autre chose pour t'aider ...

ric

Je suis passée à cette méthode -> https://forum.excel-pratique.com/excel/tous-les-sous-dossiers-ne-sont-pas-traites-150531

Or un bug qui fait que tous les sous dossiers ne sont pas traités si vous souhaitez y jeter un coup d'oeil, je suis sur le coup depuis ce matin mais rien à faire dans les 5 sous dossiers il ne m'en traite que au maximum

Rechercher des sujets similaires à "vitesse realisation macro"