Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2005, 17h50   #1
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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.
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 19h57   #2
Invité régulier
 
Inscription : avril 2005
Messages : 21
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 21
Points : 7
Points : 7
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!
godik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 20h45   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2005, 21h19   #4
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
ce sont les mêmes versions de vb (sp6)

voila un bout de code ou j'ouvre word :

Code :
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
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 09h23   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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 :
1
2
Set DocDoc = Application.Documents.Open _
        (Filename:="Arrêté.doc", UpdateLinks:=False, AddToMRU:=False, Editable:=True)
Essaie en modifiant la ligne
Code :
wappliword.Documents.Open (Filename:="c:\TempHtml.html", UpdateLinks:=False, AddToMRU:=False, Editable:=True)
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 10h02   #6
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 10h10   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Alors essaie avec

Code :
wappliword.Documents.Open (Filename:="c:\TempHtml.html")
avec ou sans les parenthèses... Tu nous dis

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2005, 12h01   #8
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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!!!

... :'(
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2005, 17h34   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
As-tu trouvé ?

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 11h21   #10
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 11h50   #11
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 12h17   #12
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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..."
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 12h39   #13
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 13h13   #14
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
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
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 13h39   #15
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 779
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 779
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
j'ai pas relu tous le message qui commence à être bien long...

mais lorsque tu fais
Code :
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 ..? :
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 14h11   #16
Dnx
Membre habitué
 
Inscription : novembre 2003
Messages : 288
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 288
Points : 119
Points : 119
Envoyer un message via MSN à Dnx
Citation:
Envoyé par bbil
j'ai pas relu tous le message qui commence à être bien long...

mais lorsque tu fais
Code :
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...
Dnx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 14h15   #17
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Ç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
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2005, 14h48   #18
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
Citation:
Envoyé par Dnx
Code :
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é
__________________
Vous vous posez une question, la réponse est peut-être ici :
Toutes les FAQs VB
Les Cours et Tutoriels VB6/VBScript
Les Sources VB6


Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

MioSkins.org : le site de référence pour GPS et PDA Mitac MIO
iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h19.


 
 
 
 
Partenaires

Hébergement Web