Macro Word ouverture gros document : ne marche plus

Le
Patrice Dargenton
Bonjour, j'ai une macro Word XP SP3 (bien patché) qui ne fonctionne plus
depuis quelques mois : l'ouverture d'un fichier texte de 100 Ko environ (la
macro continue à fonctionner pour des tout petits documents). Si je fait la
manipulation sous Word, pas de problème, mais si j'enregistre la macro
correspondante, il ne se passe rien, la macro ne fonctionne pas. Si je
programme la macro en DotNet, j'obtient l'erreur suivante : Mémoire
insuffisante : -2146823191 (insufficient memory)

Instruction :
oWrd.Documents.Open(sCheminTxt, Encoding:52, ReadOnly:=True)

Quelqu'un a obtenu la même erreur avec l'instruction : Application.Add avec
Word 2003.
www.hightechtalks.com/visual-studio-net-general/problems-word-application-add-add-408354.html
Et une autre personne a aussi obtenu la même erreur :
www.codeproject.com/Messages/1873805/i-m-facing-Com-error.aspx

Mais il semble que ces 2 exemples soient les seuls concernant cette erreur.

L'exception System.Runtime.InteropServices.COMException s'est produite
ErrorCode=-2146823191
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"
Message="Mémoire insuffisante. Enregistrez votre document immédiatement."
Source="Microsoft Word"
StackTrace:
à
Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object
o, Type objType, String name, Object[] args, String[] paramnames, Boolean[]
CopyBack, Boolean IgnoreReturn) à
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object
Instance, Type Type, String MemberName, Object[] Arguments, String[]
ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean
IgnoreReturn)

J'ai essayé le lien suivant, mais cela ne marche pas, on ne peut rechercher
la rubrique 24577 dans le chm, et l'option recherche n'est pas affichée :
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"

Si je ne trouve pas j'envisage de réinstaller Word ou bien de le réparer.
Merci pour toute aide.
-
Patrice Dargenton
patrice.dargenton@free.fr
http://patrice.dargenton.free.fr/index.html
-
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21953801
Bonjour,

Tu n'as pas publié ta macro Word, difficile de voir le problème
pour ceux et celles qui connaissent le VBA de Word.

Lorsque tu fais référence à : "Application.Add", ceci s'applique
pour "visual studio.net" qui sans aucun doute très différent de VBA Word.
Est-ce que tu es sur le meilleur groupe de discussion pour trouver une
explication à ton problème ?




"Patrice Dargenton" discussion : 4be50e9b$0$3020$
Bonjour, j'ai une macro Word XP SP3 (bien patché) qui ne fonctionne plus
depuis quelques mois : l'ouverture d'un fichier texte de 100 Ko environ (la
macro continue à fonctionner pour des tout petits documents). Si je fait la
manipulation sous Word, pas de problème, mais si j'enregistre la macro
correspondante, il ne se passe rien, la macro ne fonctionne pas. Si je
programme la macro en DotNet, j'obtient l'erreur suivante : Mémoire
insuffisante : -2146823191 (insufficient memory)

Instruction :
oWrd.Documents.Open(sCheminTxt, Encoding:52, ReadOnly:=True)

Quelqu'un a obtenu la même erreur avec l'instruction : Application.Add avec
Word 2003.
www.hightechtalks.com/visual-studio-net-general/problems-word-application-add-add-408354.html
Et une autre personne a aussi obtenu la même erreur :
www.codeproject.com/Messages/1873805/i-m-facing-Com-error.aspx

Mais il semble que ces 2 exemples soient les seuls concernant cette erreur.

L'exception System.Runtime.InteropServices.COMException s'est produite
ErrorCode=-2146823191
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"
Message="Mémoire insuffisante. Enregistrez votre document immédiatement."
Source="Microsoft Word"
StackTrace:
à
Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object
o, Type objType, String name, Object[] args, String[] paramnames, Boolean[]
CopyBack, Boolean IgnoreReturn) à
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object
Instance, Type Type, String MemberName, Object[] Arguments, String[]
ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean
IgnoreReturn)

J'ai essayé le lien suivant, mais cela ne marche pas, on ne peut rechercher
la rubrique 24577 dans le chm, et l'option recherche n'est pas affichée :
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"

Si je ne trouve pas j'envisage de réinstaller Word ou bien de le réparer.
Merci pour toute aide.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------
Geo
Le #21969021
Bonjour Patrice

Si je ne trouve pas j'envisage de réinstaller Word ou bien de le réparer.



Vous pouvez tenter de le réparer, ça ne dure pas bien longtemps et vous
ne perdrez rien contrairement à une réinstallation.

--
A+
Patrice Dargenton
Le #22000881
Bonjour, pour la macro Word, la voici (il suffit d'enregistrer la macro) :

Sub Macro1()
ChangeFileOpenDirectory "C:Tmp"
Documents.Open FileName:="MonFichierDe100Ko.txt", ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
End Sub

Elle fonctionne parfois, et parfois non, mais sans afficher d'erreur. Avec
un gestionnaire d'erreur :

On Error Resume Next
ChangeFileOpenDirectory "C:Tmp"
Documents.Open FileName:="MonFichierDe100Ko.txt", ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
If Err Then
MsgBox "Erreur n°" & Err & " : " & Error
Else
MsgBox "Succès !"
End If

En VB6, l'erreur est affiché, mais le document a quand même été chargé en
entier (il suffirait d'ignorer l'erreur alors ?)

Private Sub Command1_Click()

On Error Resume Next
Dim WordObj As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
WordObj.ChangeFileOpenDirectory "C:Tmp"
Const wdOpenFormatAuto% = 0
WordObj.Documents.Open FileName:="MonFichierDe100Ko.txt",
ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
If Err Then
MsgBox "Erreur n°" & Err & " : " & Error
End If

End Sub

Mais le code d'erreur n'est pas le même qu'en DotNet, maintenant j'ai :
5097 "Mémoire insuffisante. Enregistrez votre document immédiatement."
Il y a bien un article msdn mais il concerne Word 2003 et non 2002, et il
n'a pas l'air de correspondre :
http://support.microsoft.com/default.aspx/kb/822511/fr?p=1
Il y a d'autres cas sur internet cette fois, mais personne n'a répondu il me
semble.

Je pense que le forum Word est le plus adapté, maintenant que je peux
reproduire l'erreur aussi en VB6. Bon j'ai trouvé une solution palliative en
DotNet aussi : je vais simplement ignorer l'erreur !!!
Le problème, c'est que maintenant je ne retrouve plus
l'ErrorCode=-2146823191 je n'ai plus que le texte de l'erreur,
et comme je ne fais jamais de gestion d'erreur basée sur le texte de
l'erreur, je vais ignorer toutes les erreurs, tant pis !
Merci pour m'avoir répondu en tout cas.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------


"michdenis"
Bonjour,

Tu n'as pas publié ta macro Word, difficile de voir le problème
pour ceux et celles qui connaissent le VBA de Word.

Lorsque tu fais référence à : "Application.Add", ceci s'applique
pour "visual studio.net" qui sans aucun doute très différent de VBA Word.
Est-ce que tu es sur le meilleur groupe de discussion pour trouver une
explication à ton problème ?
Patrice Dargenton
Le #22000871
C'est fait, mais pas d'amélioration dans mon cas.
Merci en tout cas.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------


"Geo"
Bonjour Patrice

Si je ne trouve pas j'envisage de réinstaller Word ou bien de le réparer.



Vous pouvez tenter de le réparer, ça ne dure pas bien longtemps et vous ne
perdrez rien contrairement à une réinstallation.

--
A+


Geo
Le #22003461
Bonjour
Pas évident votre problème.
La base de connaissance fait référence à un document maître, ce qui ne
parait pas être votre cas.

Essayez déjà d' "assainir" votre Word :
Renommez votre Normal.dot, puis relancez Word pour en générer un autre
et récupérez vos macros.
Vous pourriez aussi réinitialiser la clef en base de registre, c'est un
peu plus contraignant car il faut reparamétrer certaines choses.

Pour votre code, essayez en allégeant un peu, mais on y va à tâtons.
Perso je tenterais ainsi, mais c'est plus par habitude, car je ne vois
pas a priori de grande différence.
On error goto Erreur
Documents.Open FileName:="C:TmpMonFichierDe100Ko.txt",
ConfirmConversions:= False, ReadOnly:úlse, AddToRecentFiles:úlse
MsgBox "Succès !"
Go Suite
Erreur:
MsgBox "Erreur n°" & Err.Number & " : " & Err.Description
Resume Suite
Suite:

Pas testé.

--
A+
Patrice Dargenton
Le #22007641
J'ai fais la manip. pour régénérer le Normal.dot : pareil
J'ai fais une réparation MS-Office : pareil
J'ai fais un quickscan BitDefender : rien
J'ai fais un scan OneCare : rien
J'ai fais un nettoyage de la base de registre avec OneCare : pareil
Bon, je laisse tomber pour le moment,
Merci pour l'aide.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------


"Geo"
Bonjour
Pas évident votre problème.
La base de connaissance fait référence à un document maître, ce qui ne
parait pas être votre cas.

Essayez déjà d' "assainir" votre Word :
Renommez votre Normal.dot, puis relancez Word pour en générer un autre et
récupérez vos macros.
Vous pourriez aussi réinitialiser la clef en base de registre, c'est un
peu plus contraignant car il faut reparamétrer certaines choses.

Pour votre code, essayez en allégeant un peu, mais on y va à tâtons.
Perso je tenterais ainsi, mais c'est plus par habitude, car je ne vois pas
a priori de grande différence.
On error goto Erreur
Documents.Open FileName:="C:TmpMonFichierDe100Ko.txt",
ConfirmConversions:= False, ReadOnly:úlse, AddToRecentFiles:úlse
MsgBox "Succès !"
Go Suite
Erreur:
MsgBox "Erreur n°" & Err.Number & " : " & Err.Description
Resume Suite
Suite:

Pas testé.

--
A+


michdenis
Le #22024061
Bonjour,

Essaie quelque chose comme :

'----------------------------------
Sub test()

Dim Chemin As String
Dim Fichier As String

Chemin = "c:Temp"
Fichier = "MonFichierDe100Ko.txt"

If Dir(Chemin, vbDirectory) <> "" Then
If Dir(Chemin & Fichier) <> "" Then
Documents.Open Chemin & Fichier
Else
MsgBox " Ce Fichier """ & Fichier & """ est introuvable dans ce répertoire."
Exit Sub
End If
Else
MsgBox "Ce répertoire est inexistant. Opération annulée."
Exit Sub
End If
End Sub
'----------------------------------



"Patrice Dargenton" discussion : 4be66008$0$17060$
Bonjour, pour la macro Word, la voici (il suffit d'enregistrer la macro) :

Sub Macro1()
ChangeFileOpenDirectory "C:Tmp"
Documents.Open FileName:="MonFichierDe100Ko.txt", ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
End Sub

Elle fonctionne parfois, et parfois non, mais sans afficher d'erreur. Avec
un gestionnaire d'erreur :

On Error Resume Next
ChangeFileOpenDirectory "C:Tmp"
Documents.Open FileName:="MonFichierDe100Ko.txt", ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
If Err Then
MsgBox "Erreur n°" & Err & " : " & Error
Else
MsgBox "Succès !"
End If

En VB6, l'erreur est affiché, mais le document a quand même été chargé en
entier (il suffirait d'ignorer l'erreur alors ?)

Private Sub Command1_Click()

On Error Resume Next
Dim WordObj As Object
Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
WordObj.ChangeFileOpenDirectory "C:Tmp"
Const wdOpenFormatAuto% = 0
WordObj.Documents.Open FileName:="MonFichierDe100Ko.txt",
ConfirmConversions:= _
False, ReadOnly:úlse, AddToRecentFiles:úlse,
PasswordDocument:="", _
PasswordTemplate:="", Revert:úlse, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, Encoding:52
If Err Then
MsgBox "Erreur n°" & Err & " : " & Error
End If

End Sub

Mais le code d'erreur n'est pas le même qu'en DotNet, maintenant j'ai :
5097 "Mémoire insuffisante. Enregistrez votre document immédiatement."
Il y a bien un article msdn mais il concerne Word 2003 et non 2002, et il
n'a pas l'air de correspondre :
http://support.microsoft.com/default.aspx/kb/822511/fr?p=1
Il y a d'autres cas sur internet cette fois, mais personne n'a répondu il me
semble.

Je pense que le forum Word est le plus adapté, maintenant que je peux
reproduire l'erreur aussi en VB6. Bon j'ai trouvé une solution palliative en
DotNet aussi : je vais simplement ignorer l'erreur !!!
Le problème, c'est que maintenant je ne retrouve plus
l'ErrorCode=-2146823191 je n'ai plus que le texte de l'erreur,
et comme je ne fais jamais de gestion d'erreur basée sur le texte de
l'erreur, je vais ignorer toutes les erreurs, tant pis !
Merci pour m'avoir répondu en tout cas.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------


"michdenis"
Bonjour,

Tu n'as pas publié ta macro Word, difficile de voir le problème
pour ceux et celles qui connaissent le VBA de Word.

Lorsque tu fais référence à : "Application.Add", ceci s'applique
pour "visual studio.net" qui sans aucun doute très différent de VBA Word.
Est-ce que tu es sur le meilleur groupe de discussion pour trouver une
explication à ton problème ?
Patrice Dargenton
Le #22093751
Bonjour, dans la version DotNet, je passe le chemin complet comme toi, le
fichier se charge bien, mais il y a quand même une erreur qui se produit,
cependant je ne voie pas d'autre solution que de l'ignorer purement et
simplement pour le moment.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------

"michdenis" %
Bonjour,

Essaie quelque chose comme :

'----------------------------------
Sub test()

Dim Chemin As String
Dim Fichier As String

Chemin = "c:Temp"
Fichier = "MonFichierDe100Ko.txt"

If Dir(Chemin, vbDirectory) <> "" Then
If Dir(Chemin & Fichier) <> "" Then
Documents.Open Chemin & Fichier
Else
MsgBox " Ce Fichier """ & Fichier & """ est introuvable dans ce
répertoire."
Exit Sub
End If
Else
MsgBox "Ce répertoire est inexistant. Opération annulée."
Exit Sub
End If
End Sub
'----------------------------------
michdenis
Le #22095271
Je ne peux pas t'en dire plus ou te proposer autre chose,
je ne connais pas cet environnement : version DotNet



"Patrice Dargenton" discussion : 4be7a891$0$10132$
Bonjour, dans la version DotNet, je passe le chemin complet comme toi, le
fichier se charge bien, mais il y a quand même une erreur qui se produit,
cependant je ne voie pas d'autre solution que de l'ignorer purement et
simplement pour le moment.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------

"michdenis" %
Bonjour,

Essaie quelque chose comme :

'----------------------------------
Sub test()

Dim Chemin As String
Dim Fichier As String

Chemin = "c:Temp"
Fichier = "MonFichierDe100Ko.txt"

If Dir(Chemin, vbDirectory) <> "" Then
If Dir(Chemin & Fichier) <> "" Then
Documents.Open Chemin & Fichier
Else
MsgBox " Ce Fichier """ & Fichier & """ est introuvable dans ce
répertoire."
Exit Sub
End If
Else
MsgBox "Ce répertoire est inexistant. Opération annulée."
Exit Sub
End If
End Sub
'----------------------------------
Patrice Dargenton
Le #22119691
J'ai trouvé la solution : il faut nettoyer le dossier %temp%, elle est
totalement probante à 100%, car il suffit de déplacer les fichiers pour que
le bug disparaisse, et le bug réapparait lorsque l'on remet les fichiers en
place :
"C:Documents and Settings[Compte utilisateur]Local SettingsTemp"
http://us.generation-nt.com/there-insufficient-memory-save-document-now-help-118779201.html
"Try clearing the temp files (Start->Run, and enter %temp%)"
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------


"Patrice Dargenton" news: 4be50e9b$0$3020$
Bonjour, j'ai une macro Word XP SP3 (bien patché) qui ne fonctionne plus
depuis quelques mois : l'ouverture d'un fichier texte de 100 Ko environ
(la
macro continue à fonctionner pour des tout petits documents). Si je fait
la
manipulation sous Word, pas de problème, mais si j'enregistre la macro
correspondante, il ne se passe rien, la macro ne fonctionne pas. Si je
programme la macro en DotNet, j'obtient l'erreur suivante : Mémoire
insuffisante : -2146823191 (insufficient memory)

Instruction :
oWrd.Documents.Open(sCheminTxt, Encoding:52, ReadOnly:=True)

Quelqu'un a obtenu la même erreur avec l'instruction : Application.Add
avec
Word 2003.
www.hightechtalks.com/visual-studio-net-general/problems-word-application-add-add-408354.html
Et une autre personne a aussi obtenu la même erreur :
www.codeproject.com/Messages/1873805/i-m-facing-Com-error.aspx

Mais il semble que ces 2 exemples soient les seuls concernant cette
erreur.

L'exception System.Runtime.InteropServices.COMException s'est produite
ErrorCode=-2146823191
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"
Message="Mémoire insuffisante. Enregistrez votre document immédiatement."
Source="Microsoft Word"
StackTrace:
à
Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object
o, Type objType, String name, Object[] args, String[] paramnames,
Boolean[]
CopyBack, Boolean IgnoreReturn) à
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object
Instance, Type Type, String MemberName, Object[] Arguments, String[]
ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean
IgnoreReturn)

J'ai essayé le lien suivant, mais cela ne marche pas, on ne peut
rechercher
la rubrique 24577 dans le chm, et l'option recherche n'est pas affichée :
HelpLink="D:Program FilesMicrosoft
OfficeOffice101036wdmain10.chm#24577"

Si je ne trouve pas j'envisage de réinstaller Word ou bien de le réparer.
Merci pour toute aide.
-------------------------------------------------------
Patrice Dargenton

http://patrice.dargenton.free.fr/index.html
-------------------------------------------------------




Publicité
Poster une réponse
Anonyme