Bonjour,
je ne suis pas codeur, mais je suis amené à faire des macros diverses pour optimiser des process, et l'IT est... indisponible.
Je rencontre un problème de 'plantage' quand je lance une macro particulière, 'plantage' d'excel qui arrive environ 60% du temps, excel plante au milieu de la macro, celle-ci dure une 15ène de minutes environ. Le plantage est un simple "excel ne répond plus", pas de message d'erreur particulier, ça se debug pas faut forcément faire sauter le processus.
Je n'ai pas pensé à regarder la gestion des ressources sur windows, mais si je me trompe pas on a des postes dit légers, tout se fait sur un serveur pour nos cessions (critrix).
Je sais bien qu'excel n'est pas top pour faire de la base de données, mais j'ai du récupérer un process déjà existant et très complexe. Sinon effectivement j'aurais plus fait un mixte d'acces et excel pour rendre le tout bien plus léger et clair.
Il s'agit d'une macro globale qui call un ensemble de macros sur différents workbooks; j'utilise des application.run. Il s'agit à la fois d'extracts, mettre en forme des données, mais aussi de faire des calculs.
La macro est en soi assez lourde, ça crée des workbooks, des sheets, envoie des mails, des copier/collés depuis des txt, des csv.. met en forme les données, gère des retraitements, le tout pour créer au final des outputs en xls et csv. En bref ce serait très long à expliquer. Il doit y avoir une centaine de subs en tout sur une 20ène de fichiers différents.
J'ai mis des application.wait pour éviter les plantages, ça m'a paru fonctionné partiellement; mais au final ça plante toujours et les wait time ça ralentie la procédure qui est déjà assez longe.
Est ce une méthode efficace de faire des pauses en quelque sorte ?
Il y aurait il un moyen 'simple' qui permette d'éviter les plantages, sans pour autant rendre le process trop long ?
Je soupçonne que ça plante lorsque ça import des données depuis des csv/txt.
Par ailleurs certains workbooks sont assez volumineux (environ 10k lignes et 100 colonnes avec beaucoup (trop) de feuilles), ça peut aussi venir du traitement de ces données..
Je ne peux malheureusement pas joindre de workbooks étant donné qu'ils s'agit de données confidentielles.
Je vous remercie de m'avoir lu et vous souhaite une très bonne soirée,
Etienne
Partager