OVH Cloud OVH Cloud

problème d'impression d'un PDF depuis Excel

6 réponses
Avatar
Antoine
Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie d'ouvrir
depuis excel 2000 un document PDF pour l'imprimer avant de le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la ligne
Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:\Documents and Settings\Awerel\Bureau\CV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub

6 réponses

Avatar
Ange Ounis
Je n'ai pas testé, mais la fonction ShellExecute permet d'imprimer sans ouvrir
le document. Remplace simplement "open" par "print" et ça devrait rouler tout seul :

'''''''''''''''''''''''
Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "print", NomFichier, "", "", 0
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub
'''''''''''''''''''''''

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

Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie d'ouvrir
depuis excel 2000 un document PDF pour l'imprimer avant de le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la ligne
Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub




Avatar
Misange
Salut d'un ange à une aile à un ange à deux ailes qui n'est pas LL ;-)

De fait ta solution fonctionne très bien mais je ne pige pas pourquoi
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
renvoie une erreur 438.


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 12/03/2006 14:53, :
Je n'ai pas testé, mais la fonction ShellExecute permet d'imprimer sans
ouvrir le document. Remplace simplement "open" par "print" et ça devrait
rouler tout seul :

'''''''''''''''''''''''
Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "print", NomFichier, "", "", 0
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub
'''''''''''''''''''''''

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


Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie
d'ouvrir depuis excel 2000 un document PDF pour l'imprimer avant de le
refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la
ligne Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub






Avatar
michdenis
Bonjour Antoine,

Voici un bout de code pour imprimer un fichier Word avec la commande Shell

Dans le haut d'un module standard.
'----------------------------------
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 Fichier As String, Chemin As String
Fichier = "C:fax.doc"
Chemin = "C:"
Application.ScreenUpdating = False
ShellExecute 0, "print", Fichier, vbNullString, Chemin, 0&

End Sub
'-----------------------------------


Salutations!



"Antoine" a écrit dans le message de news:
Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie d'ouvrir
depuis excel 2000 un document PDF pour l'imprimer avant de le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la ligne
Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub
Avatar
Ange Ounis
Salut Florence,

Je pense que c'est parce que l'objet Application ne possède pas la méthode
PrintOut. Il aurait fallu préciser la feuille, ou la fenêtre, ou le graphique,
etc. Tous objets inconnus d'un fichier pdf :)

A +

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

Salut d'un ange à une aile à un ange à deux ailes qui n'est pas LL ;-)

De fait ta solution fonctionne très bien mais je ne pige pas pourquoi
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
renvoie une erreur 438.


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 12/03/2006 14:53, :
Je n'ai pas testé, mais la fonction ShellExecute permet d'imprimer
sans ouvrir le document. Remplace simplement "open" par "print" et ça
devrait rouler tout seul :

'''''''''''''''''''''''
Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "print", NomFichier, "", "", 0
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub
'''''''''''''''''''''''

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


Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie
d'ouvrir depuis excel 2000 un document PDF pour l'imprimer avant de
le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la
ligne Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce
PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub








Avatar
Misange
Et bien merci de la réponse et je vais corriger l'astuce du site !
A + aussi

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 12/03/2006 18:01, :
Salut Florence,

Je pense que c'est parce que l'objet Application ne possède pas la
méthode PrintOut. Il aurait fallu préciser la feuille, ou la fenêtre, ou
le graphique, etc. Tous objets inconnus d'un fichier pdf :)

A +

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


Salut d'un ange à une aile à un ange à deux ailes qui n'est pas LL ;-)

De fait ta solution fonctionne très bien mais je ne pige pas pourquoi
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
renvoie une erreur 438.


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 12/03/2006 14:53, :

Je n'ai pas testé, mais la fonction ShellExecute permet d'imprimer
sans ouvrir le document. Remplace simplement "open" par "print" et ça
devrait rouler tout seul :

'''''''''''''''''''''''
Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "print", NomFichier, "", "", 0
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub
'''''''''''''''''''''''

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


Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie
d'ouvrir depuis excel 2000 un document PDF pour l'imprimer avant de
le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la
ligne Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce
PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub










Avatar
Antoine
Bonsoir à tous

Je suis désolé, mais je ne pouvais plus être réactif, passé 12 heures 30
GMT, obligations familliales obligent !
Je ne pensais pas non plus soulever un problème pseudo-kafkaïen; Mais dans
tous les cas, ce que j'aprécie, outre le fait d'avoir trouvé une solution à
mon problème, c'est surtout que, non-connaissance de ma part oblige(!),
j'ai pu indirectement aidé à affiner certains exemples présentés, mais
SURTOUT, que tous les échanges se soient passés dans une réelle
convivialité, en parfaite adéquation avec l'esprit d'entraite de ce site.
Soyez tous remerciés de l'aide que vous m'avez apportée, qui a pleinement
résolu mon problème, et en denier lieu Michdenis qui a apporté la petite
différence, qui fait la différence.
Avec mon salut d'outre atlantique...

Antoine

"Antoine" a écrit dans le message de news:

Bonjour à tous,

En reprenant une macro de Excelabo(Denis, Gaenonius), j'essaie d'ouvrir
depuis excel 2000 un document PDF pour l'imprimer avant de le refermer.
Lorsque je lance la procédure, je reçois un message d'erreur sur la ligne
Print Out :
Erreur d'éxécution '438' / propriété ou méthode non géré par cet objet.
Il semble que je n'applique pas les bonnes règles pour imprimer ce PDF...
Peut-être quelqu'un a-t-il une solution ? (ci-dessous le code)

Merci à tous
Antoine

Option Explicit
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 ShellOuvre()
Dim NomFichier
NomFichier = "C:Documents and SettingsAwerelBureauCV Antoine.pdf"
If Dir(NomFichier) <> "" Then
ShellExecute 0, "open", NomFichier, "", "", 0
Application.PrintOut Background:=True, Copies:=1, Pages:="1"
Application.Wait Now + TimeValue("00:00:15")
Application.Quit
Else
MsgBox "Chemin ou fichier introuvable."
End If
End Sub