Bonjour à toutes et à tous.
Voici mon problème :
Dans le cadre de mon alternance, j'ai développé un "petit" programme en VBA sous Excel. Le principe de ce programme est relativement simple. J'ai un fichier "monfichier.xls" dans lequel est stocké tout un tas de données, TROP de données (colonnes allant de A à AO et lignes allant de 1 à 244).
Le but du programme est de "purger" ces données, d'en faire un tri, selon une liste de mots-clés que l'employé rentre manuellement dans des colonnes sur le fichiers éxécutant le programme "test_purge_BFI.xls".
Etant relativement novice en programmation et encore plus en VBA, j'ai utilisé les moyens du bord pour écrire ce programme.
Jusqu'à récemment, le programme tournait très bien. Or depuis l'ajout d'un certain nombre de mots-clés, le programme fait planter totalement Excel et l'éxécution n'arrive jamais à son terme (peut-être qu'en attendant 24h il y arriverait mais dans le cadre d'une société, c'est évidemment inenvisageable).
Je pense que le problème vient évidemment d'un soucis d'optimisation du code.
Pour le moment j'ai deux idées concernant cette lenteur d'éxécution :
- l'utilisation des ".select" qui d'après ce que j'ai pu voir sur le net, ralentit beaucoup le programme.
- l'utilisation d'un système "fait maison" afin de parcourir les données contenues dans les cellules et d'y chercher les mots-clés (utilisation de boucles, imbriquées dans des boucles, imbriquées dans des boucles, etc... le tout avec une fonction de recherche de chaîne écrite sans Regex, n'y connaissant rien).
Mon problème est relativement urgent et je vous demande de l'aide pour deux raisons :
- je souffre en ce moment même d'une rage de dent intenable m'empêchant de travailler efficacement et de réfléchir normalement
- l'employé a besoin de ce programme au plus vite, elle devrait déjà pouvoir s'en servir et elle est bloquée tant que je ne règle pas ce soucis de plantage.
Je vous joins donc le fichier contenant le code d'éxécution du , en éspérant que quelqu'un puisse m'aider du mieux qu'il pourra pour faire en sorte que le programme ne plante plus.
PS : je ne peux pas joindre le fichier contenant les données par soucis de confidentialités des données de l'entreprise. Je pourrai éventuellement vous créer un fichier ce soir qui permettrait de tester le programme directement.
EDIT : j'ai indiqué Excel 2003 car l'extension du fichier correspond à cette version d'excel, or j'utilise le module de compatibilité sous Excel 2007. Je lance le programme également sous Excel 2007, mais d'autres employés ne disposant que de la version 2003 sont susceptibles de lancer le programme, j'ai donc laissé cette extension.
Cordialement,
Florian
Partager