Imprimer un document word

Soyez le premier à donner votre avis sur cette source.

Snippet vu 45 004 fois - Téléchargée 73 fois

Contenu du snippet

ce code vous expose les trois manières d'imprimer un document .doc
pour utiliser ce code, creez un projet .exe avec une form et trois boutons (command1, ...).
n'oublier pas d'inscrire la bibliotheque d'objet word dans les référence de votre projet!

Source / Exemple :


'n'oubliez pas de changer la constante file en fonction de votre système :o)
Const file As Variant = "D:\test.doc"

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindExecutableA Lib "shell32.dll" (ByVal lpFile As String, ByVal lpdirectory As String, ByVal lpResult As String) As Long
Private Const MAX_FILENAME_LEN = 256

Private Sub Command1_Click()
On Error Resume Next
'détermine le chemin d'accès de Word
Dim app
app = FindExecutable(file)
'lance word
Shell app & " " & file
'imprime le doc avec les paramètres par défaut
'cliquez sur printout puis appuyez sur F1 pour + d'infos
Word.ActiveDocument.PrintOut
'stoppe toutes les activités de l'appli pendant 5 sec. pour éviter tout pb
Sleep (5000)
'ferme Word
Word.Application.Quit
End Sub

Public Function FindExecutable(s As String) As String
   Dim i As Integer
   Dim s2 As String
   s2 = String(MAX_FILENAME_LEN, 32) & Chr$(0)
   i = FindExecutableA(s & Chr$(0), vbNullString, s2)
   If i > 32 Then
      FindExecutable = Left$(s2, InStr(s2, Chr$(0)) - 1)
   Else
      FindExecutable = ""
   End If
End Function

Private Sub Command2_Click()
On Error Resume Next
'détermine le chemin d'accès de Word
Dim app
app = FindExecutable(file)
'lance word
Shell app & " " & file
'imprime le doc avec les paramètres par défaut
'cliquez sur printout puis appuyez sur F1 pour + d'infos
Word.Application.Dialogs(wdDialogFilePrint).Show
'quitte word
Word.Application.Quit
End Sub

Private Sub Command3_Click()
MsgBox "je ne suis pas arrivé à établir une liaison DDE avec Word", vbExclamation
End Sub

Private Sub Form_Load()
Me.Height = 2460
Me.Width = 4050
Me.Caption = "comment imprimer un .doc ?"
With Command1
.Height = 320
.Width = 3375
.Left = 240
.Top = 480
.Caption = "par l'objet Word sans intervention utilisateur"
End With
With Command2
.Height = 320
.Width = 3375
.Left = 240
.Top = 960
.Caption = "par l'objet Word avec intervention utilisateur"
End With
With Command3
.Height = 320
.Width = 3375
.Left = 240
.Top = 1440
.Caption = "par liaison dde"
End With
End Sub

Conclusion :


ce code ne prévoit pas une vrai gestion des erreurs!
en effet, il se pourrait bien que l'utilisateur final ne possède pas word...

A voir également

Ajouter un commentaire Commentaires
aderko
Messages postés
7
Date d'inscription
samedi 3 mai 2003
Statut
Membre
Dernière intervention
16 août 2008

16 août 2008 à 17:21
ce programme est impec...
je voudrais ajouter une pic dans la facture...si vous pouvez m'aider
ce serait sympa...merci
cs_buzzo
Messages postés
29
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
30 novembre 2006

24 mai 2006 à 13:27
Bonjour, j'ai le même problème que Waldo2188 à t'il été résolu ? Word s'ouvre, ne se ferme pas et rien ne s'est passé.J'ai fait le programme en pas à pas, et bien que je comprenne pas tout le code je ne voit pas où est l'erreur. Je fonctionne sous office 2003.
cs_buzzo
Messages postés
29
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
30 novembre 2006

29 avril 2006 à 10:25
merci beaucoup pour ce code! c'est super
SgtKabukinan
Messages postés
106
Date d'inscription
lundi 20 septembre 2004
Statut
Membre
Dernière intervention
23 janvier 2010

21 déc. 2005 à 11:41
@CORTOMALTEZ :
je te renvoi sur cette source
http://www.vbfrance.com/article.aspx?ID=8072
si tu cherches tjs ;)
J'aime aussi FindExecutableA !
Ca va changer ma vie lol
cs_Waldo2188
Messages postés
142
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
20 mai 2008

8 févr. 2005 à 11:56
Ton code est vraiment simpa.
Ca mouvre bien word, mais il n'imprime rien et ne le ferme pas, est-ce que tu saurais pour quoi?
merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.