[VBA] Shell ne fonctionne pas..

Le
HD
Bonjour,

Je souhaite lancer une commande via le VBA d'Excel mais cela ne
fonctionne pas.

Si je vais en ligne de commande et que je lance à la main:
D:Convert2PDF.vbs D:monficdoc
cela fonctionne bien et j'obtiens bien un fichier PDF (le vbs en question
provient de PDFCreator).

Mais si je passe par un script VBA:
fname = "D:Convert2PDF.vbs D:monficdoc"
shell(fname)
J'obtiens une erreur 5 : argument ou appel de procédure incorrect :-/

J'ai également tenté d'utiliser ShellExecute mais j'obtiens un code
retour 2. Et cela ne fonctionne pas non plus
Public 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
Public Const SW_SHOWNORMAL = 1

fname = "D:Convert2PDF.vbs D:monficdoc"
RetVal = ShellExecute(hwnd, "Open", fname, ByVal 0&, 0&, SW_Normal)

Merci d'avance pour votre aide
--
@+
HD
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Claude
Le #23165011
Bonjour,

pour ma part, j'utilise habituellement la forme suivante :

Dim wsh
Set wsh = CreateObject("wscript.Shell")
r = wsh.Run("C:DOCUME~1moiMESDOC~1DOSSIE~1temptest.vbs param1", 0,
True)

Cordialement,
Jean-Claude
isabelle
Le #23165161
bonjour HD,

si tu as le logiciel Acrobat Distiller sur ton pc, tu pourrais utiliser
ce qui suit:

Private Sub PsToPDF()
' fichier .PS est converti en .PDF
' Nécessite la référence à Acrobat Distiller
' http://www.adobe.com/support/downloads/detail.jsp?ftpIDW5
' http://www.adobe.com/devnet/acrobat/pdfs/distiller_api_reference.pdf

Dim PSFileName As String
Dim PDFFileName As String
Dim FacFileName As String
Dim myPDF As PdfDistiller

Printerold = Application.ActivePrinter
FacFileName = "c:z1align"
PSFileName = FacFileName & ".ps" ' Nom complet avec Extension ps
PDFFileName = FacFileName & ".pdf" ' Nom complet transformé en pdf
'ParametreName = "c:Z1MesReglages.jopboptions" ' Nom complet
Set myPDF = New PdfDistiller ' Création d'une instance Distiller
'
myPDF.bSpoolJobs = 0

' Convert the postscript file to .PDF
myPDF.FileToPDF PSFileName, PDFFileName, ParametreName


' Syntaxe plus complète, si l'on a défini son fichier d'options
' myPDF.FileToPDF PSFileName, PDFFileName, ParametreName

Do While Timer < Debut + 5 ' 5 secondes
Loop

Set myPDF = Nothing ' voir remarque ci-dessus sur myPDF.bSpoolJobs = 1

'3._ Remettre l'imprimante par défaut
Application.ActivePrinter = Printerold

End Sub


isabelle


Le 2011-02-28 10:18, HD a écrit :
Bonjour,

Je souhaite lancer une commande via le VBA d'Excel mais... cela ne
fonctionne pas.

Si je vais en ligne de commande et que je lance à la main:
D:Convert2PDF.vbs D:monficdoc
cela fonctionne bien et j'obtiens bien un fichier PDF (le vbs en question
provient de PDFCreator).

Mais si je passe par un script VBA:
fname = "D:Convert2PDF.vbs D:monficdoc"
shell(fname)
J'obtiens une erreur 5 : argument ou appel de procédure incorrect... :-/

J'ai également tenté d'utiliser ShellExecute mais... j'obtiens un code
retour 2. Et cela ne fonctionne pas non plus...
Public 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
Public Const SW_SHOWNORMAL = 1

fname = "D:Convert2PDF.vbs D:monficdoc"
RetVal = ShellExecute(hwnd, "Open", fname, ByVal 0&, 0&, SW_Normal)

Merci d'avance pour votre aide

Publicité
Poster une réponse
Anonyme