Bonjour à tous,
Afin d'automatiser le process comptable de ma société et notamment la comptabilisation de provisions , j'ai modifié un fichier Excel avec plusieurs macro qu'un collègue avait fait afin de l'adapter à nos besoins. En effet, notre outil principal n'étant pas interfacé avec la comptabilité, nous devons procéder à des imports manuels via un fichier texte, et celui-ci à un format à respecter. Les macros permettant d'arriver à ce résultat, cependant le nombre de lignes étant amener à évoluer au fur et à mesure, le fichier est de plus en plus lent.
Le fichier fonctionne, mais le code et assez lent donc je me tourne vers vous pour savoir si vous auriez des astuces pour améliorer la vitesse d'exécution de deux macros, notamment les macro associées au STEP3 et au STEP4 de l'onglet PARAMETERS.
Dans l'onglet "EXPORT"; je colle dans le cellule O2 mon fichier d'export puis les colonnes de A à N sont des formules nécessaires pour les macros (l'export paraît à moitié vide, mais j'ai supprimé les données non importantes pour des raisons de confidentialité bien sûr)
=> en colonne "B" seules les lignes avec un champ "YES" seront conservées, les autres lignes seront supprimées (cf macro associée au STEP3). J'arrive à avoir le même résultat via access, mais pour les macros STEP4 et STEP5 je suis forcé d'utiliser ce fichier n'arrivant pas à avoir le même résultat.
Pour chaque ligne qui est flaguée en "YES" dans l'onglet "EXPORT", alors celle-ci va générer 3 lignes (car 3 écritures comptables) puis ensuite je complète les informations nécessaires au fur et à mesure via des boucles en VBA (ce pq le code est long je pense, car on traite ligne par ligne et on répète x fois la même opération).
Avez-vous des astuces/ bonnes pratiques à me partager? Comme déjà mentionné, je ne suis que débutant en VBA, je comprends comment fonctionne le code mais je n'ai pas du tout les compétences pour optimiser le code.
J'ai ajouté cela au début de chaque macro, mais je pense que cela n'est pas suffisant (mais ça m'a déjà fait gagner du temps!)
Application.ScreenUpdating = False
Merci pour votre aide