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] lenteur import word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut [VBA-E] lenteur import word
    Bonjour,

    Je dois importer des donnees (~1000 donnees effectives) d'un document word d'~ 15500 paragraphes dans Excel.
    L'auto refresh est OFF
    Word est setVisible FALSE
    Je boucle sur les paragraphes et teste sur le style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    While i <> paragraphs.count
     If paragraphs(i).style = "sstMyTitle3" Then   
          ' add ds excel
     End If
     i = i + 1
    Wend
    Le probleme est que ce bout de code est tres lent ( + de 60min ) et WINWORD.EXE vampirise les ressources du cpu.

    Merci d'eclairer ma lanterne, je ne suis pas un pro vba.

  2. #2
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    peux-tu détailler ton code (mettre le code correspondant au 'add ds excel) ?

    c'est là que tout se passe a priori

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Ce code est en commentaire, le probleme de lenteur ne vient donc pas de là...
    Le probleme se situe sur ce test :
    If paragraphs(i).style = "sstMyTitle3"
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    While i <> paragraphs.count
     If 3 = 4 Then   
     End If
     i = i + 1
    Wend
    la marco se termine apres 5 secondes.

  4. #4
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    j'avoue que pour le coup je sèche...

    -edit- donne à ton programme un peu de VitamineC ? je sors

  5. #5
    Expert éminent


    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
    Par défaut
    essai d'utiliser une variable dans laquelle tu met le résultat de paragraph.counts.. pour éviter de "recompter" à chaque tour...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim iNbParagraph  as integer  
    iNbParagraph = paragraphs.count 
    While i <> iNbParagraph
     If 3 = 4 Then   
     End If
     i = i + 1
    Wend

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Cette amélioration etait faite (désolé... un oubli lors de mon post) mais ca change pas grand chose sur le test du style.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    J'ai testé avec, dans la boucle, uniquement : str = .Paragraphs(cpt_para).Range.Text et l'operation d'incrementation.
    Ca prend un temps fou, le probleme est là...
    Est ce un comportement normal en VBA pour 15500 paragraphes lus ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-A] Problème importation de formulaire
    Par eLoOe dans le forum VBA Access
    Réponses: 6
    Dernier message: 22/05/2006, 11h03
  2. [VBA-W]Checkbox sous word
    Par Naim0r dans le forum VBA Word
    Réponses: 5
    Dernier message: 29/03/2006, 15h34
  3. [VBA-A]ouverture fichier word
    Par drangip dans le forum VBA Word
    Réponses: 2
    Dernier message: 25/02/2006, 12h44
  4. [VBA-E]Coller dans word
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2006, 13h07
  5. [Access][VBA] Ouvrir un document word existant
    Par NicoNGRI dans le forum Access
    Réponses: 1
    Dernier message: 16/12/2005, 12h39

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