OVH Cloud OVH Cloud

erreur 2147467259, suite à MacroVBA word qui fonctionne

5 réponses
Avatar
Raymond Poulain
Bonjour,

J'ai une macro VBA qui fonctionne, qui génère un fichier Word très gros en
copiant d'autres fichiers (htm) dans le fichier word, les uns à la suite des
autres. A la page 1180, la macro s'arrête avec le message "erreur
d'excécution -2147467259 (80004005); la méthode de LineUnitBefore de l'objet
"_paragraphe format" a échoué" et ceci est suivi d'une offre de débogage de
la macro qui surligne en jaune l'instruction: "lineUnitbefore=0"
La macro tourne bien jusque là en traitant environ 350 fichiers htm sur 1200.
J'ai essayé sur Windows Me avec 256 Mo de Mémoire vive et sur W98SE avec
128, mais l'arrêt est au même endroit.
Quelqu'un peut-il aider???

Merci d'avance

Raymond

5 réponses

Avatar
Geo
Bonjour Raymond Poulain


Bonjour,

J'ai une macro VBA qui fonctionne, qui génère un fichier Word très
gros en copiant d'autres fichiers (htm) dans le fichier word, les uns
à la suite des autres. A la page 1180, la macro s'arrête avec le
message "erreur d'excécution -2147467259 (80004005); la méthode de
LineUnitBefore de l'objet "_paragraphe format" a échoué" et ceci est
suivi d'une offre de débogage de la macro qui surligne en jaune
l'instruction: "lineUnitbefore=0"


Pas évident du tout.
Déjà il faudrait savoir à quel objet tu l'appliques et éventuellement
vérifier cet objet au moment du blocage.
Sinon dans la base de connaissance cette erreur renvoie très souvent à un
pb d'accès à des données.
Voir
http://support.microsoft.com/default.aspx?scid=kb;fr;467868
ou
http://support.microsoft.com/default.aspx?scid=kb;fr;318519

Le document sur lequel la recopie coince, il a quelque chose de particulier
?
Tu génères ton document avec le vba Word ou tu le fais à partir d'une autre
application?

--

A+

Avatar
Anacoluthe
Bonjour !

'Raymond Poulain' nous a écrit ...
A la page 1180, la macro s'arrête avec le message "erreur
d'excécution -2147467259 (80004005); la méthode de LineUnitBefore de l'objet
"_paragraphe format" a échoué" et ceci est suivi d'une offre de débogage de
la macro qui surligne en jaune l'instruction: "lineUnitbefore=0"
La macro tourne bien jusque là en traitant environ 350 fichiers htm sur 1200.


L'erreur 2147467259 est assez voisine de la 2147467258 ...

Sans rire il faut bien comprendre qu'il est absolument impossible
de vous répondre sans le code et le contexte !!!

Vérifiez néanmoins que le 351ème fichier n'est pas en chinois :-p

La propriété LineUnitBefore qui définit l'espacement avant un
paragraphe ne s'applique pas aux langues asiatiques, mais c'est
juste une idée comme ça...
Ceci dit la notice donnée par Geo peut orienter ailleurs.

Anacoluthe
« Les erreurs sont les portes de la découverte. »
- James JOYCE

Avatar
Raymond Poulain
Bonjour

Merci de la réaction.
Rien de particulier :
Tous les fichiers sont comparables (seul le texte du contenu change).
J'ai essayé en supprimant le fichier suivant pour voir, mais cela bloque
toujours à la page 1180 du nouveau document word qui se remplit (et qui
contient la Macro Vba).
Je me suis posé la question de capacité ou de mémoire vive ou de blocage par
accumulation (à chaque fois que le Vba a traité un fichier il repagine
l'ensemble du nouveau document Word et cela ralentit le processus).
Merci Geo
Ray



Bonjour Raymond Poulain


Bonjour,

J'ai une macro VBA qui fonctionne, qui génère un fichier Word très
gros en copiant d'autres fichiers (htm) dans le fichier word, les uns
à la suite des autres. A la page 1180, la macro s'arrête avec le
message "erreur d'excécution -2147467259 (80004005); la méthode de
LineUnitBefore de l'objet "_paragraphe format" a échoué" et ceci est
suivi d'une offre de débogage de la macro qui surligne en jaune
l'instruction: "lineUnitbefore=0"


Pas évident du tout.
Déjà il faudrait savoir à quel objet tu l'appliques et éventuellement
vérifier cet objet au moment du blocage.
Sinon dans la base de connaissance cette erreur renvoie très souvent à un
pb d'accès à des données.
Voir
http://support.microsoft.com/default.aspx?scid=kb;fr;467868
ou
http://support.microsoft.com/default.aspx?scid=kb;fr;318519

Le document sur lequel la recopie coince, il a quelque chose de particulier
?
Tu génères ton document avec le vba Word ou tu le fais à partir d'une autre
application?

--

A+







Avatar
Raymond Poulain
Bonjour

Non, pas de carctères spéciaux. Tous les fichiers (1250) copiés par la Vba
se ressemblent (seul le contenu change et il est en Anglais!). J'ai essayé en
supprimant le fichier suivant pour voir, mais cela bloque toujours à la page
1180 du nouveau document word qui se remplit.

Merci Anacoluthe

Ray


Bonjour !

'Raymond Poulain' nous a écrit ...
A la page 1180, la macro s'arrête avec le message "erreur
d'excécution -2147467259 (80004005); la méthode de LineUnitBefore de l'objet
"_paragraphe format" a échoué" et ceci est suivi d'une offre de débogage de
la macro qui surligne en jaune l'instruction: "lineUnitbefore=0"
La macro tourne bien jusque là en traitant environ 350 fichiers htm sur 1200.


L'erreur 2147467259 est assez voisine de la 2147467258 ...

Sans rire il faut bien comprendre qu'il est absolument impossible
de vous répondre sans le code et le contexte !!!

Vérifiez néanmoins que le 351ème fichier n'est pas en chinois :-p

La propriété LineUnitBefore qui définit l'espacement avant un
paragraphe ne s'applique pas aux langues asiatiques, mais c'est
juste une idée comme ça...
Ceci dit la notice donnée par Geo peut orienter ailleurs.

Anacoluthe
« Les erreurs sont les portes de la découverte. »
- James JOYCE




Avatar
Geo
Bonjour Raymond Poulain


Bonjour

Non, pas de carctères spéciaux. Tous les fichiers (1250) copiés par
la Vba se ressemblent (seul le contenu change et il est en Anglais!).
J'ai essayé en supprimant le fichier suivant pour voir, mais cela
bloque toujours à la page 1180 du nouveau document word qui se
remplit.


T'as quand même pas atteint la limite de Word : 32 mégaoctets ?
Ca vaudrait quand même le coup de vérifier sur les autres limites.
Et il y a aussi la bidouille du bricoleur :
mettre la ligne en commentaire ou récupérer automatiquement l'erreur pour
voir s'il va plus loin.

--

A+