OVH Cloud OVH Cloud

ouvrir Word au cours d'une macro Excel

3 réponses
Avatar
Yann
Bonjour,
petite question :
j'ai utilisé ce code dans une macro:

Sub Word()

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(PagedegardeTarif)
WordApp.Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit

End Sub

Mais ça ne fonctionne pas, où est l'erreur?
Je dirais que c'est sur le nom du document mais je ne sais pas vraiment.

Merci pour votre aide

3 réponses

Avatar
Ange Ounis
J'ai l'impression que tu te prends un peu les pieds dans le tapis :

ActiveWindow.SelectedSheets.PrintOut Copies:=1

fonctionne avec Excel (SelectedSheets) mais pas dans Word. Essaye plutôt :

'''''''''''''''''''
Sub Word()
Dim NomDoc, WordApp, WordDoc
NomDoc = "Le fichier de ton choix.doc"
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(NomDoc)
WordApp.Visible = True
WordDoc.PrintOut
' ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit
End Sub
'''''''''''''''''''

Il y a aussi plus simple (AMA) pour imprimer un document, en utilisant la
fonction API ShellExecute qui fait tout en une seule instruction (ouvrir
l'application source, lancer l'impression, refermer l'application).
Par exemple :

'''''''''''''''''''
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub ShellImprime()
Dim fich
fich = "LecteurCheminCompletEtFichier.doc"
ShellExecute 0, "print", fich, "", "", 0
End Sub
'''''''''''''''''''

----------
Ange Ounis
----------

Bonjour,
petite question :
j'ai utilisé ce code dans une macro:

Sub Word()

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(PagedegardeTarif)
WordApp.Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit

End Sub

Mais ça ne fonctionne pas, où est l'erreur?
Je dirais que c'est sur le nom du document mais je ne sais pas vraiment.

Merci pour votre aide


Avatar
Yann
Lorsque je fais la première solution, il y a une erreur qui se produit:
il ne trouve pas le fichier alors que j'ai mis le nom entier avec .doc
faut-il mettre le chemin entier ou non?


J'ai l'impression que tu te prends un peu les pieds dans le tapis :

ActiveWindow.SelectedSheets.PrintOut Copies:=1

fonctionne avec Excel (SelectedSheets) mais pas dans Word. Essaye plutôt :

'''''''''''''''''''
Sub Word()
Dim NomDoc, WordApp, WordDoc
NomDoc = "Le fichier de ton choix.doc"
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(NomDoc)
WordApp.Visible = True
WordDoc.PrintOut
' ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit
End Sub
'''''''''''''''''''

Il y a aussi plus simple (AMA) pour imprimer un document, en utilisant la
fonction API ShellExecute qui fait tout en une seule instruction (ouvrir
l'application source, lancer l'impression, refermer l'application).
Par exemple :

'''''''''''''''''''
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub ShellImprime()
Dim fich
fich = "LecteurCheminCompletEtFichier.doc"
ShellExecute 0, "print", fich, "", "", 0
End Sub
'''''''''''''''''''

----------
Ange Ounis
----------

Bonjour,
petite question :
j'ai utilisé ce code dans une macro:

Sub Word()

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(PagedegardeTarif)
WordApp.Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit

End Sub

Mais ça ne fonctionne pas, où est l'erreur?
Je dirais que c'est sur le nom du document mais je ne sais pas vraiment.

Merci pour votre aide





Avatar
Ange Ounis
Oui.

----------
Ange Ounis
----------

Lorsque je fais la première solution, il y a une erreur qui se produit:
il ne trouve pas le fichier alors que j'ai mis le nom entier avec .doc
faut-il mettre le chemin entier ou non?


J'ai l'impression que tu te prends un peu les pieds dans le tapis :

ActiveWindow.SelectedSheets.PrintOut Copies:=1

fonctionne avec Excel (SelectedSheets) mais pas dans Word. Essaye plutôt :

'''''''''''''''''''
Sub Word()
Dim NomDoc, WordApp, WordDoc
NomDoc = "Le fichier de ton choix.doc"
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(NomDoc)
WordApp.Visible = True
WordDoc.PrintOut
' ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit
End Sub
'''''''''''''''''''

Il y a aussi plus simple (AMA) pour imprimer un document, en utilisant la
fonction API ShellExecute qui fait tout en une seule instruction (ouvrir
l'application source, lancer l'impression, refermer l'application).
Par exemple :

'''''''''''''''''''
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub ShellImprime()
Dim fich
fich = "LecteurCheminCompletEtFichier.doc"
ShellExecute 0, "print", fich, "", "", 0
End Sub
'''''''''''''''''''

----------
Ange Ounis
----------

Bonjour,
petite question :
j'ai utilisé ce code dans une macro:

Sub Word()

Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.documents.Open(PagedegardeTarif)
WordApp.Visible = True
ActiveWindow.SelectedSheets.PrintOut Copies:=1
WordDoc.ActiveDocument.Close
WordApp.Quit

End Sub

Mais ça ne fonctionne pas, où est l'erreur?
Je dirais que c'est sur le nom du document mais je ne sais pas vraiment.

Merci pour votre aide