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 :

[WORD]Problème de mémoire


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut [WORD]Problème de mémoire
    Bonjour,

    j'ai une application qui pilote word depuis vb6, pendant un temps, le programme marchait et depuis peu, il déclenche une erreur de mémoire lors de l'ouverture d'un document alors que manuellement, lorsque je l'ouvre, il s'ouvre correctement.

    au début, mon application creeais une instance word puis la détruisais en allant tuer le processus pour chaque fonction/sub

    après quelque recherche sur internet, on m'a conseillé d'ouvrir word une fois et ouvrir/fermer le document entre chaque fonction/sub

    mais même après toutes ces opérations, j'ai toujours lors d'un

    wappliword.open document

    une erreur 5097, mémoire insuffisante.

    j'ai déjà vérifié toutes les mémoires et tout est OK.
    Espace disque OK

    merci.

  2. #2
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    ca serait peut etre plus simple de te repondre si on avait le code ou une partie, tu dois mal liberer la memoire tout simplement ou tu n'as pas fait attention!

  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
    Par défaut
    Hello,
    Est-il possible qu'un changement de bibliothèque ait pu avoir lieu ?
    J'ai eu ce phénomène en vba en passant de sr1 à sr2 sur des instructions qui fonctionnaient avant... et j'ai dû revoir ma syntaxe.

    Une idée comme ça...

    A+

  4. #4
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    ce sont les mêmes versions de vb (sp6)

    voila un bout de code ou j'ouvre word :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    On Error Resume Next
    Set wappliword = New Word.Application
    wappliword.Documents.Open "c:\TempHtml.html"
    While err.Number <> 0
        err.Clear
       wappliword.document.close false
        On Error Resume Next
        wappliword.Documents.Open "c:\TempHtml.html"
        DoEvents
        If err.Number = 91 Then
            Set wappliword = New Word.Application
            myDelay 20
        End If
    Wend

  5. #5
    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
    Par défaut
    Hello,

    J'ai retrouvé un code d'ouverture d'un .doc sur VB, il est différent de celui que tu utilises... A tout hasard, je te le passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set DocDoc = Application.Documents.Open _
            (Filename:="Arrêté.doc", UpdateLinks:=False, AddToMRU:=False, Editable:=True)
    Essaie en modifiant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wappliword.Documents.Open (Filename:="c:\TempHtml.html", UpdateLinks:=False, AddToMRU:=False, Editable:=True)
    A+

  6. #6
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    je ne sais pas ou tu as trouvé ces paramètres mais chez moi, je ne trouve pas tes paramètres updatelinks, addtomru et editable

  7. #7
    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
    Par défaut
    Alors essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wappliword.Documents.Open (Filename:="c:\TempHtml.html")
    avec ou sans les parenthèses... Tu nous dis

    A+

  8. #8
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    nope, toujours ce foutu problème de mémoire
    mais ça me dépasse
    il ouvre correctement word en plus avec le document ouvert dans word et le vb me génère une erreur!!!

    ... :'(

  9. #9
    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
    Par défaut
    As-tu trouvé ?

    A+

  10. #10
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    voila ou j'en suis après de nombreux test :

    j'ai 2 PC et un laptop. dont word 2003 sur un pc et le laptop et word 2000 installé sur le dernier PC

    les 1er test ont été effectué sur un premier pc avec word 2003.
    après 2000 documents traités, il génère une erreur de mémoire dès le relancement de l'application, lors de l'ouverture d'un premier document.

    le laptop : idem mais après 500 documents

    le pc avec word 2000 : idem après 800 documents

    j'ai donc changé le code pour n'avoir qu'une instance de word et j'ouvre/ferme le document entre chaque boucle au lieu de "killer" le processus "winword"...
    et je fais bien un "set myWord = nothing" pour détruire l'objet avant l'instanciation de word.

    sur le PC ou il y a word 2000, j'ai découvert dans "application data\modèle" 800 documents TEMP, je les ai donc supprimé parce que j'ai cru que c'était à cause de ces documents qu'il générait une erreur de mémoire mais toujours pas... erreur mémoire persiste

    j'ai supprimé le "normal.dot" pour qu'il le recrée mais idem, erreur mémoire...

    maintenant, je n'ai plus d'idées, et ca fait 1 mois que je suis sur cette erreur...

    pourriez vous m'aider s'il vous plait???

    je suis en train de penser sur une éventuelle piste, celle de purger la mémoire des PC ?

    merci d'avance

  11. #11
    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
    Par défaut
    Une observation comme ça...
    J'ai eu ce problème. J'ai découvert, à force de me casser la tête, que le document était en cause : Il semble me souvenir que, créé sous Office 97 SR1, puis passé sur SR2, c'est lors du retour sur SR1 que j'ai eu le problème de "mémoire".
    Si ce n'est pas le passage SR1/SR2, c'est de toutes façons le retour d'une version ultérieure à une précédente qui a posé le pb (Peut-être de Office XP à Office 97, je ne me souviens pas exactement.

    J'ai donc collé les données dans un nouveau fichier de la version la plus ancienne et je n'ai plus eu de pb (tant que je n'enregistrerai pas alternativement dans l'une ou l'autre version pour revenir sur la première après être passé sur la seconde ayant sauvé sur l'ancienne suite à l'enregistrement sur ... )

    NB - Ce n'est pas parce que tu ne travailles plus désormais que dans la version la plus récente que le pb disparaît. Si c'est bien ça, ton fichier, il est foutu, il faut le refaire... mais le copier/coller est permis... enfin, je crois me souvenir... tu tentes...

    Bonne chance... Tu en auras besoin...

    A+
    A+

  12. #12
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    ben écoute je ne sais pas si c'est ca le problème car tous les documents ont été crée avec win 2000 (le pc qui a traité 800 documents)

    et ce meme pc génère une erreur mémoire?!

    de plus je rajouterai que l'application ouvre bien word, ouvre bien le document mais le compilateur m'indique 'erreur insuffisante, veuillez enregistrer votre document..."

  13. #13
    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
    Par défaut
    Je n'ai pas d'autre réponse, à part un problème de taille mais hier encore, avec Word97 et 256 mo de ram, j'ai fait un remplacer "-" par "/" sur 154069 lignes sans pb de mémoire.
    Essaie au moins ça :
    Prends un doc tout neuf, exporte et ré-importe tes macros, fais un copier coller des données et vérifie...
    C'est ainsi que j'ai trouvé le pb... et résolu après m'être cassé la tête à ne pas oser fermer l'appli le soir pour être sûr de retrouver quelque chose le lendemain...

    Tu nous tiens au courant. Ce n'est pas que le problème soit très passionnant mais si tu débusques quelque chose, je crois que nous sommes tous intéressés.

    A+

  14. #14
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    Citation Envoyé par ouskel'n'or
    Prends un doc tout neuf, exporte et ré-importe tes macros, fais un copier coller des données et vérifie...
    A+
    heuu je ne comprends pas trop la manipulation que tu veux me faire faire.

    j'ouvre quoi et ou

    PC word 2000 (origine création des documents RTF)
    PC word 2003
    LAPTOP word 2003
    Serveur de stockage : endroit ou sont stocké les RTF

    merci

  15. #15
    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
    j'ai pas relu tous le message qui commence à être bien long...

    mais lorsque tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wappliword = New Word.Application
    tu crée une nouvelle instance de word ... ? donc si tu en crée une par document c'est peu être pour cela que tu arrive en bout de la mémoire ...
    si durant l'exécution de la macro tu appelle le gestionnaire de taches ( bouton droit sur barre de taches), combien de "Word" vois-tu dans la liste des processus en cours ..? :

  16. #16
    Dnx
    Dnx est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 290
    Par défaut
    Citation Envoyé par bbil
    j'ai pas relu tous le message qui commence à être bien long...

    mais lorsque tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set wappliword = New Word.Application
    tu crée une nouvelle instance de word ... ? donc si tu en crée une par document c'est peu être pour cela que tu arrive en bout de la mémoire ...
    si durant l'exécution de la macro tu appelle le gestionnaire de taches ( bouton droit sur barre de taches), combien de "Word" vois-tu dans la liste des processus en cours ..? :
    oui exact, je faisais

    set wappliword = new word.application avant l'ouverture de chaque document ce qui avait comme conséquence dans le gestionnaire des tâches d'avoir plusieurs "winword.exe". donc j'ai mis a la fin de chaque traitement de fichier, un "killprocessus("winword.exe").

    mais voila, après de nombreuses recherches sur internet et des conseils pêchés a gauche et a droite, j'ai fini par instancier une seule fois le word j'ouvre/ferme les 85000 documents et a la fin du traitement de tous ces fichiers, je fais un "wappliword.quit" et "set wappliword = nothing"

    voila et après ca, j'ai toujours une erreur...

  17. #17
    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
    Par défaut
    Ça paraît tellement évident que... j'avais pas relevé
    Je prends des leçons chaque fois que tu postes, bbil, je vais finir par être vexé

    A+ quand même

  18. #18
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par Dnx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    On Error Resume Next
    Set wappliword = New Word.Application
    wappliword.Documents.Open "c:\TempHtml.html"
    While err.Number <> 0
        err.Clear
       wappliword.document.close false
        On Error Resume Next
        wappliword.Documents.Open "c:\TempHtml.html"
        DoEvents
        If err.Number = 91 Then
            Set wappliword = New Word.Application
            myDelay 20
        End If
    Wend


    tu devrais essayer le jardinage

    Désolé, mais ca m'a échappé

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/01/2007, 19h20
  2. Problème de Mémoire VBA WORD Mac G5 5go Ram
    Par kitcreanet dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/08/2006, 12h08
  3. [Word] Problème de version Word
    Par delphicrous dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/09/2004, 11h19
  4. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  5. Problème de mémoire Affichage images
    Par Repti dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2004, 20h06

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