IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]macro lente. étrange. étrange.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 17
    Points : 16
    Points
    16
    Par défaut [VBA-E]macro lente. étrange. étrange.
    Bonjour,

    Je rencontre un problème qui bloque tout mon projet de développement. Mon précédent problème a été résolu en trente secondes dès lors que je l'ai exposé sur ce forum. Si seulement les super héros de l'autre fois pouvait se manifester

    donc :

    J'ai un fichier excel rempli de formules. Plus de 40 000 lignes. J'active des macros à partir d'un formulaire pour, entre autres, masquer certaines lignes (simples boucles permettant de mettre la valeur de rows(n).hidden à true ou à false en fonction de la valeur de certaines cellules de la ligne n.

    J'avais déja rencontré des problèmes de boucle lente. Ce problème avait été résolu (grace à ce forum) en affectant au début de la procédure, la valeur xlsmanual à Application.calculation. (en fin de boucle, j'y réaffecte la valeur xlsautomatic.

    Malgré ça, mon probème est désormais le suivant :

    Lorsque :
    j'imprime le fichier excel ou
    je définis une zone à imprimer spécifique ou
    je change la mise en page (exemple : feuille en mode paysage et fichier à imprimer ajuster à une page en hauteur),

    mes macros redeviennent très lentes (comme lors de mon problème précédent.

    Pire, lorsque la macro tourne toujours et que je clique sur le bouton fermer du formulaire (à partir duquel j'active les macros), Excel bug et je dois fermer l'application sans même pouvoir sauvegarder mon travail.

    Mon application va être utilisé par les utilisateurs dès demain midi. le ptit stagiaire que je suis flippe.

    Merci de votre aide !!

    zenix

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben à priori ton fichier ... semble être rempli de lignes de formules... ? ne devrai tu pas limiter les calculs ... en passant les caculs de ton classeurs en manuel ... puis utiliser la commande Calculer maintenant (F9) .. pour ne recalculer tes formules que lorsque des changements l'impose...

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello
    Citation Envoyé par tu
    Mon application va être utilisé par les utilisateurs dès demain midi
    Y'a donc urgence, il est 12h45 mais je n'ai pas vu ton post plus tôt.
    Tu as une solution "provisoire" en attendant de régler le pb : Fais une copie des données calculée + collageSpécial dans une autre feuille, des valeurs d'abord, du format ensuite, et fais ton édition à partir de là.
    Juste une idée pour "dépanner".
    Je relis ton post pour voir si je trouve quelque chose

    A+

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    la valeur xlsmanual à Application.calculation. (en fin de boucle, j'y réaffecte la valeur xlsautomatic.
    Déjà, au lieu de repasser la valeur à xlsautomatic, qui lance le calcul dès qu'une valeur est modifiée, utilise l'instruction Calculate avant de lancer l'édition.
    Un idée comme ça mais j'essaierais en laissant xlsmanual.
    Tu dis

    Je contnue ma lecture

    A+

    Edit
    pour une feuille de calcul particulière : Worksheets(1).Calculate

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par ouskel'n'or
    Y'a donc urgence, il est 12h45 mais je n'ai pas vu ton post plus tôt.
    A+
    pas encore 12h45 chez moi ... mais bon le post initial date du 19 ... on est le 22..

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Hihi ! C'est une info si je dis que j'avais pas vu ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/12/2009, 09h46
  2. [VBA-E]exécution lente de la macro après aperçu
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/03/2006, 17h49
  3. [VBA] Excel + macro + aléatoire
    Par spopo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/01/2006, 15h42
  4. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23
  5. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo