Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vba: "il" ne veut plus enregistrer le doc word que j'ai créé...

12 réponses
Avatar
Jac
Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
...
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "\Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "\test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
...
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment d'enregistrer, j'ai
droit à un laconique "Variable objet ou variable de bloc With non définie".
Microsoft Word 10.0 Object library est bien activé dans les références Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac

10 réponses

1 2
Avatar
FFO
Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment d'enregistrer, j'ai
droit à un laconique "Variable objet ou variable de bloc With non définie".
Microsoft Word 10.0 Object library est bien activé dans les références Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac





Avatar
Jac
Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de même ?
(10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac







Avatar
Jac
J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac











Avatar
FFO
Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une dans
ce nouveau classeur les différentes composantes de celui d'origine en testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac
















Avatar
Jac
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends plus
très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus complexe
que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je retombe
sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER, FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac


















Avatar
Jac
Ça y est ! Je n'ai pas encore la solution, mais le problème est lié au
chemin d'accès à mon modèle car quand j'ouvre un modèle situé à la racine du
C, ça se passe sans grincements de dents.

Merci encore pour ta contribution.

Jac

"Jac" a écrit dans le message de news:
%
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends
plus très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus
complexe que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je retombe
sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER,
FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac






















Avatar
Jac
C'est même pas ça : en faisant tourner la macro pas à pas, je perds le focus
sur le fichier Word, donc quand il s'agit d'enregistrer, Excel ne sait plus
où il en est !!!

Donc même si le code est bon, ça peut ne pas fonctionner. C'est tout de même
un comble... que de chercher l'erreur dans une syntaxe qui est
rigoureusement juste !!!
Et de plus, qui fonctionne dans certains cas (C:...).

"Jac" a écrit dans le message de news:

Ça y est ! Je n'ai pas encore la solution, mais le problème est lié au
chemin d'accès à mon modèle car quand j'ouvre un modèle situé à la racine
du C, ça se passe sans grincements de dents.

Merci encore pour ta contribution.

Jac

"Jac" a écrit dans le message de news:
%
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends
plus très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus
complexe que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je
retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de
news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER,
FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac


























Avatar
MichDenis
Essaie ceci : Il n'y a aucune raison que cela ne fonctionne pas.

Ce type de code fait référence à une liaison tardive (au moment
de l'exécution) avec l'application Word. Conséquemment, ne
déclare pas la référence Word dans la fenêtre Références de
l'éditeur de code... cette procédure pourra s'exécuter peu importe
la version d'excel installée sur l'ordinateur.

'-----------------------------
Sub test()
Dim Wd As Object, Dc As Object
Dim Chemin As String, Fichier As String
'Ton classeur se doit d'avoir été enregistré au moins une fois.
Chemin = ThisWorkbook.Path & ""
Fichier = "Origine.dot"

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(Chemin & Fichier)
NOUVEAU_FICHIER = Chemin & "test.doc"
Dc.SaveAs NOUVEAU_FICHIER
Set Dc = Nothing: Set Wd = Nothing
End Sub
'-----------------------------





"Jac" a écrit dans le message de news: %
C'est même pas ça : en faisant tourner la macro pas à pas, je perds le focus
sur le fichier Word, donc quand il s'agit d'enregistrer, Excel ne sait plus
où il en est !!!

Donc même si le code est bon, ça peut ne pas fonctionner. C'est tout de même
un comble... que de chercher l'erreur dans une syntaxe qui est
rigoureusement juste !!!
Et de plus, qui fonctionne dans certains cas (C:...).

"Jac" a écrit dans le message de news:

Ça y est ! Je n'ai pas encore la solution, mais le problème est lié au
chemin d'accès à mon modèle car quand j'ouvre un modèle situé à la racine
du C, ça se passe sans grincements de dents.

Merci encore pour ta contribution.

Jac

"Jac" a écrit dans le message de news:
%
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends
plus très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus
complexe que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je
retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de
news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path & "Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER,
FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac


























Avatar
Jac
Bonjour MichDenis,

j'ai suivi tes conseils et ça fonctionne parfaitement avec des petits .dot
de test.
Mais quand je lance le vrai .dot avec 9 pages, une cinquantaine de champs de
fusion sur un seul enregistrement (xls) et quelques manipulation par marcro
word à la création d'un nouveau doc basé sur le dot (réattachement de la
base de données, transformation des champs calculés en texte, traitement des
dates pour passer le "er" de 1er en exposant, ...).
Le .dot s'ouvre et après toutes les manips, Excel annonce une erreur
d'exécution '13' : Incompatibilité de type. Je l'ai contournée avec un "On
error resume next" suivi d'un "On error goto 0", mais quand arrive le moment
d'enregistrer le doc qui est parfaitement fonctionnel, le Vba d'Excel me
renvoie une erreur d'exécution '424' : Objet requis.

Et là, je coince une peu...

"MichDenis" a écrit dans le message de news:
%
Essaie ceci : Il n'y a aucune raison que cela ne fonctionne pas.

Ce type de code fait référence à une liaison tardive (au moment
de l'exécution) avec l'application Word. Conséquemment, ne
déclare pas la référence Word dans la fenêtre Références de
l'éditeur de code... cette procédure pourra s'exécuter peu importe
la version d'excel installée sur l'ordinateur.

'-----------------------------
Sub test()
Dim Wd As Object, Dc As Object
Dim Chemin As String, Fichier As String
'Ton classeur se doit d'avoir été enregistré au moins une fois.
Chemin = ThisWorkbook.Path & ""
Fichier = "Origine.dot"

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(Chemin & Fichier)
NOUVEAU_FICHIER = Chemin & "test.doc"
Dc.SaveAs NOUVEAU_FICHIER
Set Dc = Nothing: Set Wd = Nothing
End Sub
'-----------------------------





"Jac" a écrit dans le message de news:
%
C'est même pas ça : en faisant tourner la macro pas à pas, je perds le
focus
sur le fichier Word, donc quand il s'agit d'enregistrer, Excel ne sait
plus
où il en est !!!

Donc même si le code est bon, ça peut ne pas fonctionner. C'est tout de
même
un comble... que de chercher l'erreur dans une syntaxe qui est
rigoureusement juste !!!
Et de plus, qui fonctionne dans certains cas (C:...).

"Jac" a écrit dans le message de news:

Ça y est ! Je n'ai pas encore la solution, mais le problème est lié au
chemin d'accès à mon modèle car quand j'ouvre un modèle situé à la racine
du C, ça se passe sans grincements de dents.

Merci encore pour ta contribution.

Jac

"Jac" a écrit dans le message de news:
%
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends
plus très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus
complexe que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je
retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de
news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path &
"Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER,
FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac
















Avatar
MichDenis
A ) Ton problème est lié à Word => Il y a un forum à cet effet.

B ) Je n'ai pas de fichier modèle Word qui ressemble à ton fichier
pour effectuer des tests

C ) Est-ce que ta version Microsoft Office est à jour ou est-ce un bug ?




"Jac" a écrit dans le message de news: %
Bonjour MichDenis,

j'ai suivi tes conseils et ça fonctionne parfaitement avec des petits .dot
de test.
Mais quand je lance le vrai .dot avec 9 pages, une cinquantaine de champs de
fusion sur un seul enregistrement (xls) et quelques manipulation par marcro
word à la création d'un nouveau doc basé sur le dot (réattachement de la
base de données, transformation des champs calculés en texte, traitement des
dates pour passer le "er" de 1er en exposant, ...).
Le .dot s'ouvre et après toutes les manips, Excel annonce une erreur
d'exécution '13' : Incompatibilité de type. Je l'ai contournée avec un "On
error resume next" suivi d'un "On error goto 0", mais quand arrive le moment
d'enregistrer le doc qui est parfaitement fonctionnel, le Vba d'Excel me
renvoie une erreur d'exécution '424' : Objet requis.

Et là, je coince une peu...

"MichDenis" a écrit dans le message de news:
%
Essaie ceci : Il n'y a aucune raison que cela ne fonctionne pas.

Ce type de code fait référence à une liaison tardive (au moment
de l'exécution) avec l'application Word. Conséquemment, ne
déclare pas la référence Word dans la fenêtre Références de
l'éditeur de code... cette procédure pourra s'exécuter peu importe
la version d'excel installée sur l'ordinateur.

'-----------------------------
Sub test()
Dim Wd As Object, Dc As Object
Dim Chemin As String, Fichier As String
'Ton classeur se doit d'avoir été enregistré au moins une fois.
Chemin = ThisWorkbook.Path & ""
Fichier = "Origine.dot"

Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(Chemin & Fichier)
NOUVEAU_FICHIER = Chemin & "test.doc"
Dc.SaveAs NOUVEAU_FICHIER
Set Dc = Nothing: Set Wd = Nothing
End Sub
'-----------------------------





"Jac" a écrit dans le message de news:
%
C'est même pas ça : en faisant tourner la macro pas à pas, je perds le
focus
sur le fichier Word, donc quand il s'agit d'enregistrer, Excel ne sait
plus
où il en est !!!

Donc même si le code est bon, ça peut ne pas fonctionner. C'est tout de
même
un comble... que de chercher l'erreur dans une syntaxe qui est
rigoureusement juste !!!
Et de plus, qui fonctionne dans certains cas (C:...).

"Jac" a écrit dans le message de news:

Ça y est ! Je n'ai pas encore la solution, mais le problème est lié au
chemin d'accès à mon modèle car quand j'ouvre un modèle situé à la racine
du C, ça se passe sans grincements de dents.

Merci encore pour ta contribution.

Jac

"Jac" a écrit dans le message de news:
%
Eh oui, la macro seule dans un nouveau fichier fonctionne et quand je
rappatrie les feuilles et les macros, ça marche encore. Je ne comprends
plus très bien ce disfonctionnement...
Je vais revoir le calcul des chemins d'accès... qui est un peu plus
complexe que dans le modèle...

"FFO" a écrit dans le message de news:

Rebonjours à toi

Il faut cerner l'origine de l'anomalie

Si je comprends bien ta macro seule dans un nouveau document fonctionne
Tu me confirmes ???

Dans cet hypothèse je partirai de cette base et reprendrai une par une
dans
ce nouveau classeur les différentes composantes de celui d'origine en
testant
entre chacune d'elles l'état de fonctionnement la macro
Celà devrait cerner normalement le coupable

Réalises l'opération et donnes nous le résultat


J'ai repris toutes mes feuilles et toutes mes macros dans un nouveau
classeur, j'ai réactivé Microsoft Word 10.0 Object library et je
retombe sur
le même message "Variable... non définie".
Pourquoi il s'acharne comme celà ???


"Jac" a écrit dans le message de news:

Merci FFO,
c'est vrai que dans un nouveau fichier Excel, ça fonctionne
parfaitement.
Que dois-je faire dans mon classeur de travail pour qu'il en soit de
même
? (10 feuilles, 40 macros, ...)

"FFO" a écrit dans le message de
news:

Bonjours Jac
Ton code chez moi fonctionne bien
Je me hasarde une idée
Essaies ton code dans un document Excel vierge peut être sera t'il
plus
coopératif et d'incrimer l'intégriter de celui existant

Toujours à tenter


Bonjour à tous,

depuis le vba d'XL, j'ouvre un modèle Word et je l'enregistre.
----------------------------------
....
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Add(ActiveWorkbook.Path &
"Origine.dot")
NOUVEAU_FICHIER = ActiveWorkbook.Path & "test.doc"
Dc.SaveAs Filename:=NOUVEAU_FICHIER,
FileFormat:=wdFormatDocument
Set Dc = Nothing: Set Wd = Nothing
....
-----------------------------------
Ça a fonctionné, mais maintenant, quand c'est le moment
d'enregistrer,
j'ai
droit à un laconique "Variable objet ou variable de bloc With non
définie".
Microsoft Word 10.0 Object library est bien activé dans les
références
Vba.

Que dois-je faire pour que ça refonctionne ?

Merci d'avance.

Jac
















1 2