OVH Cloud OVH Cloud

Lancer une impression d'un document Office depuis excel

5 réponses
Avatar
marcv
Bonjour à tous,
J'ai un petit soucis dans VBA Excel 2003.
En effet j'ai une liste de fichiers office (DOC, XLS et PPT), je
voudrais automatiser leur impression dans un ordre préalablement
défini.
J'arrive à lancer l'impression depuis excel vers word avec la commande
suivante :
channelNumber = Application.DDEInitiate(app:="WinWord",
topic:=le_fichier)
Application.DDEExecute channelNumber, "[FILEPRINT]"
Application.DDETerminate channelNumber

Mais ça ne marche pas pour powerpoint.
De plus, j'ai un message me demandant est-ce que je veux lancer
WINWORD.EXE pour lancer l'impression dans Word. Y aurait-il moyen de
définir définitivement le chemin de l'appli ?
Quelqu'un peut m'aider please ?
Merci.

5 réponses

Avatar
Clément Marcotte
Bonjour,

Mais ça ne marche pas pour powerpoint.


Sans garantie, suite à des problèmes avec PPT et OLE hier. Essaie de
lancer PowerPoint avec

Shell "powerpnt.exe"

avant. Je me suis aperçu hier, que l'on ne pouvait pas lancer
PowerPOint avec OLE.

Avatar
marcv
"Clément Marcotte" wrote in message news:...
Bonjour,

Mais ça ne marche pas pour powerpoint.


Sans garantie, suite à des problèmes avec PPT et OLE hier. Essaie de
lancer PowerPoint avec

Shell "powerpnt.exe"

avant. Je me suis aperçu hier, que l'on ne pouvait pas lancer
PowerPOint avec OLE.


C'est bien ce que je pensait (PPT et OLE), j'ai essayé ça, mais je ne
suis pas convaincu :
On Error GoTo s
Application.DisplayAlerts = False
chan2 = Application.DDEInitiate("Powerpnt", le_fichier)
s:
SendKeys "%F", True
SendKeys "I", True
SendKeys "~", True
SendKeys "%{F4}", True
Powerpoint est lancé et activé puis ouvre le_fichier, par contre après
il y a une erreur. Comme l'appli est active, je bascule avec sendkey
pour lancer l'impression du doc, et fermer le fichier une fois
terminer. C'est tordu, mais sur mon poste ça à l'air de marcher.


Avatar
marcv
Avec cet exemple :

Application.DisplayAlerts = False
chan = DDEInitiate(App:="powerpnt",
Topic:="C:temptexte2.ppt")
DDEExecute chan, "[FilePrint]"
DDEExecute chan, "[FileClose]"
DDETerminate chan

J'ai une erreur 13 (incompatibilité de type), mais powerpoint est
lancé et le fichier est ouvert ! le problème est que le canal DDE
n'est pas actif ....un idée ?
Avatar
Alain CROS
Bonjour.

Ceci fonctionne très bien chez moi.

Pour imprimer :

Private Declare Function ShellExecute& Lib "shell32" Alias "ShellExecuteA" _
(ByVal hwnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&)

Sub ImprimWord()
ShellExecute 0&, "print", "CheminCompletDuFichierDOC", "", "", 0&
End Sub

Sub ImprimPowerpoint()
ShellExecute 0&, "print", "CheminCompletDuFichierPPT", "", "", 0&
End Sub

Pour Imprimer PPT avec OLE :

Sub PPTOLE()
Dim LePPT As Object
Set LePPT = CreateObject("Powerpoint.Application")
With LePPT
.Visible = True
.Presentations.Open "CheminCompletDuFichierPPT"
.Presentations(1).PrintOut
End With
End Sub

Alain CROS.

"luminous" a écrit dans le message de news:
"Clément Marcotte" wrote in message news:...
Bonjour,

Mais ça ne marche pas pour powerpoint.


Sans garantie, suite à des problèmes avec PPT et OLE hier. Essaie de
lancer PowerPoint avec

Shell "powerpnt.exe"

avant. Je me suis aperçu hier, que l'on ne pouvait pas lancer
PowerPOint avec OLE.


C'est bien ce que je pensait (PPT et OLE), j'ai essayé ça, mais je ne
suis pas convaincu :
On Error GoTo s
Application.DisplayAlerts = False
chan2 = Application.DDEInitiate("Powerpnt", le_fichier)
s:
SendKeys "%F", True
SendKeys "I", True
SendKeys "~", True
SendKeys "%{F4}", True
Powerpoint est lancé et activé puis ouvre le_fichier, par contre après
il y a une erreur. Comme l'appli est active, je bascule avec sendkey
pour lancer l'impression du doc, et fermer le fichier une fois
terminer. C'est tordu, mais sur mon poste ça à l'air de marcher.




Avatar
marcv
"Alain CROS" wrote in message news:<#...
Bonjour.

Ceci fonctionne très bien chez moi.


AUSSI

ET UNE MOUSSE POUR ALAIN !!!

Merci à tous.