Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMPRIMER UN DOCUMENT WORD


Information sur la source

Catégorie :Imprimante Classé sous : imprimer, document, word, winword, impression Niveau : Débutant Date de création : 04/07/2000 Vu : 33 418

Note :
5,25 / 10 - par 8 personnes
5,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • '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
'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...
 

Commentaires et avis

signaler à un administrateur
Commentaire de gabchampagne le 18/10/2003 01:21:05

Ton api :

FindExecutableA

m'interresse et je vais la prendre. Merci

signaler à un administrateur
Commentaire de cortomaltez le 10/12/2004 19:50:31

Dans ton code tu utilises un document WORD éxistant sur le poste client;
1ere question : est il possible de générer ce document WORD dynamiquement via VB avec en parametres du texte provenant aussi de VB ( pour un programme générant des factures destinées à être imprimées automatiquement ) ?
2e question : comment se nomme la référence WORD à ajouter au programme pour utiliser les fonctionnalités de WORD avec VB
( faut il la télécharger ou est elle comprise dans la bibliothèque de références  et sous quel nom ?)

signaler à un administrateur
Commentaire de Waldo2188 le 08/02/2005 11:56:42

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

signaler à un administrateur
Commentaire de SgtKabukinan le 21/12/2005 11:41:58

@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

signaler à un administrateur
Commentaire de buzzo le 29/04/2006 10:25:44

merci beaucoup pour ce code! c'est super

signaler à un administrateur
Commentaire de buzzo le 24/05/2006 13:27:15

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.

signaler à un administrateur
Commentaire de aderko le 16/08/2008 17:21:08

ce programme est impec...
je voudrais ajouter une pic dans la facture...si vous pouvez m'aider
ce serait sympa...merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Imprimer un Document Word à partir de VB [ par Webmineur ] S'lut,est-ce que quelqu'un sait comment lancer l'impressioin d'un document wordà partir de VB !!merci A+ Impression document Word par VB [ par merlin ] Je cherche a imprimer un document word a partir de VB, suivant le meme principe qu'avec l'explorateur. J'y arrive avec des document Paint, Notepad, ma Imprimer un document WORD [ par Christian ] Salut tt le monde,Beaucoup de choses ont été écrites sur le sujet, mais j'ai pas trouvé complétement mon bonheur.Mon pb est le suivant :Je livre avec Comment recupere l'evenement d impression sous word ? [ par Lofo ] Bonjour a tous,Je voudrais changer des proprites de plusieurs label sur un document Word lorsque j imprime le document. Pour faire clair ils ont une imprimer un document word à partir d'access [ par peyman ] peymanbonjour, comment imprimer à partir d'access 2000 un document word qui existe déjà dans un repertoire impression de document word [ par nhorack ] bonjour tous le monde, je cherches un moyen pour imprimer des documents word situes dans mes documents. j'ai bien essaye d'appliquer avec l'objet prin Impression et macro word [ par smaugg ] Bonjour tou le monde.J'aurai voulu savoir comment valider une boite de dialogue apparaissant à l'ecran lors de l'execution de ma macro.En fait, ma mac VB : Impression Word en Postscript avec Distiller [ par fmarmey ] Bonjour,J'ai un soucis concernant l'impression d'un document Word en format postscript sur un imprimante "Acrobat Distiller".En fait la conversion se impression d'etat sous format document word [ par baladi03 ] youssSalut les mat grises4Saluts tout le mondeJ'ai réalisé une application vb6 en arabe et j'ai des probleme d'impression .c'est faisable avec crystal Ecrire et Imprimer en dotnet un document word ! [ par briaros76 ] Slt à tous ! je commence en vb.net et j'aimerai savoir comment écrire dans un fichier Word et l'imprimer directement avec la même appli


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.