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

VBA Word Discussion :

VBA : lenteurs sous Office 2010/2003


Sujet :

VBA Word

  1. #1
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut VBA : lenteurs sous Office 2010/2003
    Bonjour,
    Je constate de nombreuses lenteurs de mes macros VBA écrite sous Word 2003 qui, une fois sous 2010, se retrouvent à ramer énormément.
    Mon dernier exemple en date est la suppression de 100 feuilles de styles personnalisées qui sont détruites quasi instantanément sous Word 2003 alors que cela prend presque une minute par style sous Word 2010 (cela dure environ 4 minutes pour effacer les 100 styles sous Word 2003 alors que cela prend presque 4 heures sous Word 2010).

    J'ai fait le test sur plusieurs postes avec Office 2010, Vista ou Windows Seven... Office 64 bits ou non... Et les macros vont bien plus vite sous Office 2003 que sous 2010...

    Quelqu'un aurait-il une réponse sur l'énigme sur cette lenteur d'Office 2010 qui ralentit énormément toutes les macros, ou presque?

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Sans le code, difficile de dire ce qui pourrait coincer.

    Je ne rencontre pas de problème de vitesse en ce qui concerne la vitesse d'exécution des macro sous 2010, même lorsqu'elles ont été écrite avec 2003.

  3. #3
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Salut,

    Sans le code, difficile de dire ce qui pourrait coincer.


    Hello Heureux-oli, ravi que tu me répondes, merci.
    Je fais tourner ma macro en même temps sur la machine aussi n'ai-je pas le code dans l'immédiat mais il ressemble à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim i as integer
    for i = activedocument.styles.count to 1 step -1
          if left(activedocument.styles(i).name, 4) = "bal_" then
                    activedocument.styles(i).delete
          end if
    next i
    Je parcours tous les styles et s'il s'agit d'un style perso commencant par "bal_" alors le style est supprimé...
    La macro s'arrête sur le Delete pendant bien plus d'une minute sous Word 2010 avant de passer au style suivant, alors que sous Word 2003 cela est résolu en quelques secondes...
    Dans quelques minutes je pourrai te passer le code exact mais il n'y a rien de plus que des codes debug.print pour voir où j'en suis... et sinon l'instruction Name pour un style n'est pas exactement celle là sous VBA

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Pour en avoir le coeur net, j'ai fait un test avec ton code.

    Il y a une erreur dans la propriété du style Name qui devient NameLocal en 2010.

    Le code tourne en moins d'une seconde pour supprimer quelques styles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub TestVitesse()
    Dim i As Integer
    For i = ActiveDocument.Styles.Count To 1 Step -1
          If Left(ActiveDocument.Styles(i).NameLocal, 4) = "bal_" Then
                    ActiveDocument.Styles(i).Delete
                    Debug.Print i
     
          End If
    Next i
    End Sub

  5. #5
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    J'ai lancé mon script à 13H28 et il en est à supprimer le style n°173, alors qu'il est 21H50, ...
    Quelque soit la machine roulant sous Word 2010 ca rame de folie sur ce passage de suppression des styles.
    Sous Word 2003 ca passe comme une lettre à la poste, pourtant.

    Merci pour ton essai, mais j'aimerais bien savoir ce qui peut bloquer Word 2010.
    Mon Document fait plus de 1000 pages A4 et certains des styles en question qui doivent être supprimés sont utilisés dans des paragraphes vides dans le document. Mais, quoi qu'il en soit, Word 2003 se débrouille bien plus rapidement, comme si la gestion des styles sous 2010 n'était plus du tout la même, comme s'il devait reconstruire tout le document parce qu'un style n'était plus là...

  6. #6
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Au final, ma macro aura mis :
    - 01H18 sur un PC vieux de 6 ans avec Windows XP et Office 2003
    - 12H44 sur un PC top de gamme avec Windows Seven et Office 2010.

    Il y a quand même un petit malaise sachant que la supression des styles n'est pas du tout la seule tache de l'opération et qu'elle aura mis à elle seule moins de 5 minutes sous Office 2003 contre 07H20 sous Office 2010.




    Que fait cette macro:
    - elle charge une interface qui propose de choisir un fichier xml à traiter
    - elle ouvre le fichier balisé Xml sélectionné
    - elle applique des styles colorisé en fonction de la balise xml pour mieux voir le niveau de profondeur des balises et agir en conséquence
    - elle applique des styles Word mis en forme en fonction du style couleur
    - elle construit les tableaux Word avec les balises Tbl, Row et Cell
    - elle supprime les styles couleur du document
    - elle traite les tableaux par l'ajour de tabulation avec points de conduite
    Au Final la supression des styles devrait être une formalité comparé aux autres traitements globaux et bien non, cela prend des heures et des heures sous Word 2010.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Tout ce que je peux te dire, c'est que pour supprimer quelques styles avec le code que tu nous as donné, ça n'a pas pris 1 seconde sous 2010 32 bits

  8. #8
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Accepterais-tu que je t'envoie la macro complète avec un fichier traitable?
    Car le test que tu as dû faire ne devait pas prendre en compte 1000 pages ni des styles utilisés?


    Là, tu reverras forcément ta position si tu arrives à essayer sous Office 2003 puis sous 2010 qui est fichtrement beaucoup plus lent... à moins de faire des macros basiques.

  9. #9
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut RafCorDel,

    Je suis dans la lignée de Heureux-Oli et j'ai refais le test (en créant 150 styles dont la moitié seront à supprimer). C'est OK ==> du coup, j'ai testé avec du volume :
    j'ai créé un fichier de 1200 pages (avec renvois, tableaux, dessins, TdM, index, styles persos...) avec les 150 styles et j'ai appliqué le style "bal_135" à 3071 paragraphes et le "bal_55" à 240 paragraphes (du coup, j'ai quelques styles "bal_55" avec exposant dans mon document. Puis j'ai lancé la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub TestVitessePourCreerLesStyles
        For aI = 1 To 150
            ActiveDocument.Styles.Add (IIf(aI Mod 2 = 0, "Bad", "bal_") & Trim(Str(aI)))
        Next
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub TestVitesse
       For aI = ActiveDocument.Styles.Count To 1 Step -1
            If Left(ActiveDocument.Styles(aI).NameLocal, 4) = "bal_" Then
                ActiveDocument.Styles(aI).Delete
            End If
        Next
    End Sub
    Résultat moins de 2 minutes sur un PC portable de 3 ans (hélas pas encore sinon il serait allé au rebut donc de 2,5 ans) avec Word 2007.

    @+

  10. #10
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut
    Merci pour ton test, fameux même!!!
    C'est super chouette d'avoir des gens super sympas qui font les tests de leur côté!!!

    As-tu essayé le même script sous Office 2003?
    Je suis certains qu'il prendrait seulement quelques secondes au lieu de quelques minutes...


    P.S.: Désolé pour le retard, j'ai dû zapper la notification pendant mes congés

  11. #11
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut Lenteurs des macros VBA sous Office 2010: trouvé !!!
    Bonjour à vous,
    Après enquête, les lenteurs que je cite depuis le début de ce post sont liées à la version 64 bits de Microsoft Office 2010.
    Au vu du résultat, je déconseille d'installer la version 64 bits même si le système est en 64 bits.
    Un début de réponse ici : Microsoft warns against installing 64-bit Office 2010 unless you really need it

  12. #12
    Membre du Club Avatar de RafCorDel
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 41
    Points : 55
    Points
    55
    Par défaut Test de performance VBA entre Office 2010 64 bits et 32 bits
    Pour une macro très longue qui transforme un fichier XML en un livre mis en page avec tableaux de 592 pages A4:
    - Office 2010 64 bits : 17 H 43 de traitement
    - Office 2010 32 bits : 04 H 08 de traitement
    Les deux tests ont été effectués sur la même machine avec le même système Windows 7 64bits après installation et désinstallation de chacune des version d'Office 2010.

    Différence énorme, donc...

    N'installez Office 2010 64 bits que si vous avez de gros besoins en nombre de cellules dans vos classeurs Excel !!!
    Car sinon tout rame en VBA !!!

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Comme indiqué dans mon très récent post, l'installation des assembly microsoft interop a accéléré de facon considérable mes macros.

    Téléchargeable ici :

    http://www.microsoft.com/en-us/downl...s.aspx?id=3508


    Bien à vous,
    Alexandre

Discussions similaires

  1. Migrer un projet 12 sous office 2007 en version 14 sous office 2010
    Par carlito1979 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/06/2015, 21h02
  2. Réponses: 1
    Dernier message: 24/02/2014, 15h28
  3. [XL-2010] Alternative à Microsoft DAO 3.6 Object Library sous Office 2010 64 bits
    Par george33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2013, 09h42
  4. Réponses: 0
    Dernier message: 19/12/2011, 08h09
  5. [XL-2010] Remplacer FileSearch sous Office 2010
    Par kesimon63 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2011, 10h22

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