Imprimer un document word a partir d'excel

Ko2i4s

XLDnaute Nouveau
Bonjour a tous,

Je suis en train de créer un mini programme d'impression d'etiquettes sous excel et word. :D

En fait je souhaiterais créer une macro sous excel me permettant de choisir la quantité d'impression et d'imprimer directement le document word (contenant l'etiquette) en hidden.

J'ai donc trouvé le bout de code ci dessous sur ce forum , mais j'ai un bug au niveau du : "Set appWrd = CreateObject("Word.Application")"

Message d'erreur :
Erreur d'éxécution 13
Incompatibilité de type

Dans les références vb activés, j'ai =

Visual Basic for applications
Microsoft Excel 9.0 object library
Microsoft Word 9.0 object library
et
Microsoft Office 9.0 object library

voici le code utilisé =
Code:
Sub ouvrirDocWord_Impression()
'necesite d'activer la reference Microsoft Word xx.x Object Library
Dim appWrd As Word.Application
Dim docWord As Word.Document
Dim Fichier As String

Fichier = "D:\Programme etiquettes\Etiquettes\7422_E0.doc"

Set appWrd = CreateObject("Word.Application") 'creation session Word
appWrd.Visible = True 'pour que word reste masqué pendant l'operation
Set docWord = appWrd.Documents.Open(Fichier)

docWord.PrintOut 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la seesionWord

End Sub

En esperant etre assez précis et dans l'attente de votre réponse ;)

cordialement
 
Dernière édition:
G

Guest

Guest
Re : Imprimer un document word a partir d'excel

Bonjour,

On utilise CreateObject lorsqu'on n'a pas coché de référence à l'application désirée.


Déclarer appWord avec New si référence cochée

Code:
Sub ouvrirDocWord_Impression()
'necesite d'activer la reference Microsoft Word xx.x Object Library
Dim appWrd As [COLOR=red][B]New[/B][/COLOR] Word.Application
Dim docWord As Word.Document
Dim Fichier As String

Fichier = "D:\Programme etiquettes\Etiquettes\7422_E0.doc"

appWrd.Visible = True 'pour que word reste masqué pendant l'operation
Set docWord = appWrd.Documents.Open(Fichier)

docWord.PrintOut 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la seesionWord

End Sub

A+
 

Ko2i4s

XLDnaute Nouveau
Re : Imprimer un document word a partir d'excel

Tout d'abord merci pour cette réponse rapide =)

Mais, j'ai testé avec ton code, et j'ai un autre message d'erreur :

Erreur d'exécution 430
la classe ne gère pas automation ou l'interface attendue

en lançant le déboguage , il me signale l'erreur ici :

appWrd.Visible = True

je viens d'essayer en mettant "false" a la place de "true" , me disant que ca venait peut etre de la , pas de changement.

ET essayer de mettre "appWrd.Visible = True" en commentaire, et l'erreur se défini a la ligne suivante...


Je pense qu'il doit y avoir quelque chose d'incorrect en amont. mais quoi ? au passage j'utilise excel et word 2000
 
Dernière édition:
G

Guest

Guest
Re : Imprimer un document word a partir d'excel

Re,

Chez moi cela fonction, avec Office 10.

Mais essai d'inverser les deux lignes suivantes:

tu as bien supprimer la ligne CreateObject et déclarer appWrd comme ci-après:

Code:
Dim appWrd As New Word.Application

Ou en deux temps

Code:
Dim appWrd As Word.Application
Set appWrd = New Word.Application

A+
 

Ko2i4s

XLDnaute Nouveau
Re : Imprimer un document word a partir d'excel

j'ai copié collé ton code en fait;)

Code:
Sub ouvrirDocWord_Impression()
'necesite d'activer la reference Microsoft Word xx.x Object Library

[B]Dim appWrd As New Word.Application[/B]
Dim docWord As Word.Document
Dim Fichier As String

Fichier = "D:\Programme_etiquettes\Etiquettes\7422_E0.doc"

appWrd.Visible = True
Set docWord = appWrd.Documents.Open(Fichier)

docWord.PrintOut 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la sessionWord

End Sub

et j'ai essayé en deux temps
Code:
Sub ouvrirDocWord_Impression()
'necesite d'activer la reference Microsoft Word xx.x Object Library

[B]Dim appWrd As Word.Application
Set appWrd = New Word.Application[/B]
Dim docWord As Word.Document
Dim Fichier As String

Fichier = "D:\Programme etiquettes\Etiquettes\7422_E0.doc"

appWrd.Visible = True
Set docWord = appWrd.Documents.Open(Fichier)

docWord.PrintOut 'impression

docWord.Close 'fermer le document Word
appWrd.Quit 'fermer la sessionWord

End Sub

dans ce cas le debogueur n'aime pas la ligne :
Set appWrd = New Word.Application

cordialement
 
Dernière édition:
G

Guest

Guest
Re : Imprimer un document word a partir d'excel

Re,

Ben si tu as coché les bonnes références, et bien déclarer tes variables, je ne vois pas pourquoi cela ne fonctionnerait pas.

Autre solution: la référence à Word 9.0 et revenir à CreateObject

Mais il faudra déclarer appWrd et docWord comme objets génériques:
Code:
Dim appWrd as Object
Dim docWord As Object
 
Set appWrd = CreateObject("Word.Application") 'creation session Word

A+
 

Ko2i4s

XLDnaute Nouveau
Re : Imprimer un document word a partir d'excel

ca fonctionne !! Merci !! :D:D

Seul petit bémol et pour info , lorsque l'on ferme word et qu'une impression est en cours, il la suspend.
Je pense donc mettre un echo "appuyer sur une touche a la fin de l'impression" pour regler ce pb.

a+
 

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 121
Membres
104 038
dernier inscrit
Helpme59