Partager via

VBA Excel lent

Anonyme
2021-10-07T11:04:40+00:00

Bonjour, j'ai développé un programme avec VBA sur Excel. Il a très bien fonctionné pendant des mois, avec des réponses d'analyses en 4 secondes. Depuis quelques jours, il faut plus d'une minute pour avoir des résultats, alors que rien n'a été modifié dans le code. L'ordinateur est récent, protégé par un anti virus, et a été réinitialisé "sortie d'usine". Comment expliquer et solutionner ce problème?

Merci à ceux qui pourraient m'apporter la réponse.

Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

12 réponses

  1. DanielCo 107.7K Points de réputation
    2021-10-07T14:49:10+00:00

    Poste au moins le code.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-10-07T14:16:32+00:00

    Merci Daniel,

    Le rafraichissement d'écran est désactivé, et aucun calcul sur les feuilles, tout est fait par VBA.

    Ce qui pose question, c'est que cela tournait "rapidement" ( 4 à 5 secondes) avec le même code, celui-ci n'a pas été modifié, et que maintenant, il faut 1minute 30. Pas de problème de mémoire non plus.

    Je m'interroge sur la possibilité de mises à jour qui viendraient perturber l'exécution. Ceci d'autant que je l'ai testé sur un autre ordinateur, et que le temps est aussi très long.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2021-10-07T14:00:57+00:00

    Bonjour,

    Difficile à diagnostiquer. Est-ce que tu pourrais partager le classeur sans données confidentielles ? Sinon :

    • essaie d'ajouter l'instruction "DoEvents" dans les boucles.
    • Travaille sur des tables mémoire plutôt qu'avec des plages de cellules
    • mesure des temps d'exécution avec les lignes d'instruction :

    Deb = Timer

    Debug.Print Timer - Deb

    • Evite les instructions Select
    • Désactive le rafraichissement d'écran
    • Passe le calcul en mode manuel

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2021-10-07T11:59:48+00:00

    Bonjour Lan,

    Merci pour votre réponse. Non le volume de données reste le même. A partir d'une base de données, le programme donne des réponses sur les éléments de cette base en fonction de certains critères sélectionnés.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2021-10-07T11:43:34+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Salut Thierry, j’espère que tu vas bien. Je m’appelle Ian et je suis heureux de vous aider aujourd’hui.

    Je suis désolé d’entendre parler de ce problème.

    Puis-je savoir ce que fait ce VBA ?

    Lit-il certaines données qui pourraient augmenter en quantité?

    Il s’agit d’un forum d’assistance d’utilisateur à utilisateur et je suis un autre utilisateur.

    J’espère que cela vous aidera, mais s’il vous plaît laissez-moi savoir si vous avez besoin de quelque chose d’autre.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire