Macro VBA qui ralentit subitement Excel
Bonjour,
Une macro que j'utilise (enfin, on est plusieurs à l'utiliser) depuis des années et qui recopie des couleurs d'un planning multiligne dans une autre feuille du même classeur pour faire un planning sur une seule ligne par machine cause depuis quelques jours des très forts ralentissements d'Excel.
Lorsque j'ouvre le classeur que je travaille dessus et que j'exécute la macro pour la première fois, tout va bien, mais à partir de là, j'ai des latences énormes dans Excel (genre 1 seconde entre la frappe clavier et l'apparition du caractère) et une lenteur générale qui fait qu'Excel n'est plus utilisable.
Si j'exécute la macro une seconde fois, elle mets plusieurs minutes à s'exécuter au lieu de 15 secondes la première fois.
J'ai hérité du classeur à l'origine, donc suite au problème j'ai ouvert optimisé le code (initialement la macro tournait en 1 minute, maintenant en 15 secondes), mais cela ne change rien. Tous les trucs basiques du genre désactiver l'affichage, les calculs et les évènements durant la macro ont été rajoutés mais sans résultats. Les variables sont déclarées, les feuilles nommés avec Set, etc, mais rien n'y fait.
La seule solution est d'enregistrer et fermer Excel après chaque exécution de macro.
J'ai ressorti des versions archivées du classeur qui ont un an et qui fonctionnaient alors ont le même symptôme.
Le problème est le même sur tous les PC sur lesquels j'ai pu essayer.
Vu que même les vieux classeurs ont le même problème, j'imagine un problème de mise à jour ou de nouveau paramétrage d'Excel, mais franchement, je sèche :(
Merci pour votre aide.
Bonsoir
Merci de bien vouloir mettre votre version excel dans la profil de votre compte car là avec "Français" on n'est pas avancé et on ne sait pas si vous avez excel 97, 2003, 2010, 2016 ou plus récent ou si vous êtes sur excel MAC 2011, MAC 2016...
Cela aidera celui qui vous répond
Pas facile de vous dire sans voir le fichier
A priori, je dirai de voir
- si vous n'avez pas de formule Matricielle
- si vos codes VBA n'utilisent des variables public ou mal déclarées
- si vous avez des boucles for ... to ....combinées
Crdlt
Bonsoir,
planning, couleur, lenteur... Faites un tour du côtés de MFC s'il en existent...
Début d'année une demande vers moi pour modifier un fichier qui marchait jusque là très bien c'est retrouvé à fonctionner très lentement : lancement d'une procédure "macro" d'ajout de une ligne dans un tableau, aller boire un café voir deux pour revenir lorsque la macro avait finie...
Nettoyage des MFC et le fichier est redevenu "normal" à l'utilisation.
En effet, s'il y a des copies/recopies de cellules avec MFC, le principe de fonctionnement d'Excel 2010 et + démultiplie ces MFC lors de ces actions... Histoire de découpage de plage d'effet !
Mais sans fichier... comment vous aider.
Maintenant si le fichier ne peut être transmis, vous pouvez à votre niveau faire une copie et supprimer certaines choses du classeur afin d'identifier ce qui pourrait être la cause : une feuille un tableau etc...
Ou bien encore tester la réelle taille d'utilisation du classeur : certain sans le vouloir/le savoir applique des mise en forme sur des colonnes entières ! avec plus d'un million de lignes ! imaginez s'il y a plusieurs colonnes, mais ce type d'erreur engendre plutôt un grossissement du fichier qu'un ralentissement... bien que cela peut-être lier quelque fois.
Faites une analyse avec le Mammouth disponible ici
La tailles des "rectangles" des ascenseurs verticaux et horizontaux est un bon indicateur visuel d'une plage de cellule bien trop grande en utilisation que ce qu'elle représente réellement : si une feuille contient une dizaine de lignes alors le rectangle est presque aussi grand que l'ascenseur, s'il est vraiment plus petit c'est que malgré les dix lignes utilisées, Excel gère plus d'une dizaine de millier de lignes !
Bon courage à vous pour vos recherche.
@ bientôt
LouReeD
Bonjour,
@LooReed :
planning, couleur, lenteur... Faites un tour du côtés de MFC s'il en existent...
Juste pour la couleur (encore que Microsoft a tout de même fait des améliorations je pense) !
Par contre je n'ai jamais constaté de lenteur dû à l'utilisation de MFC. Curieux...
Ou bien encore tester la réelle taille d'utilisation du classeur : certain sans le vouloir/le savoir applique des mise en forme sur des colonnes entières ! avec plus d'un million de lignes !
J'ajouterais aussi les formules qui sont parfois mises sur des colonnes entières juste pour préparer à l'avance en cas d'ajout de données..
Pas sûr pour le lien Mammouth. Je pense qu'il ne fonctionne plus avec les versions récentes d'excel. Il me semble que je l'avais testé et que sur excel 2016 cela ne fonctionnait plus correctement
Cordialement
Bonjour,
pas l'utilisation des MFC, l'utilisation de copier/couper/coller dans des zones sous MFC :
Une plage de 9 cellules 3x3 (trois colonnes sur 3 lignes), avec une simple MFC si<>"" alors rouge s'applique à : A1:C3 si on fait un copier/coller d'une autre cellule au milieu, la simple MFC se transforme alors en une série de 4 zones : les trois cellules consécutives en haut, les trois du bas, celle de gauche et celle de droite.
Et je le répète c'est uniquement un nettoyage de MFC qui a sauvé l'utilisation d'un fichier en début d'année. Après on peut me dire ce que l'on veut, pour moi s'est factuel.
Alors dans ce cas précis je n'ai pas dis que c'était la cause vu qu'il n'y a pas de fichier, mais ne serait qu'hier encore, avec un tableau structuré et des MFC conditionnelles dedans, d'une série de 7 couleurs et/ou format, la liste des règles s'est allongées au point que la poignée de l'ascenseur de la fenêtre des MFC est réduit à sa taille minimale ! Forcément cela ralenti quoi qu'on en dise car à chaque "change" la liste des règles est survolée, non ?
Pour ce qui est de Mammouth on peut toujours utiliser le principe de base : vérification de la taille réelle d'utilisation d'une feuille :
on sélectionne A1 puis [CTRL]+[SHIFT]+[Fin] afin de se retrouver à la dernière colonne et dernière ligne gérée par Excel sur cette feuille, on a parfois des surprises !
@ bientôt
LouReeD
Merci pour vos réponses.
Je fais juste un retour pour dire que au bout de environ deux semaines, la macro s'est remise à fonctionner sans que rien de plus n'ait été touché.......
Œuvre du démon ou mise à jour hasardeuses d'excel par Microsoft, j'ai du mal à trancher
Re
Merci du retour
Merci de mettre à jour votre profil comme demandé ici -->https://forum.excel-pratique.com/s/goto/1217004
Pensez à cloturer le fil si vous en avez terminé
Crdlt