Partager via

ShellExecute

Anonyme
2014-11-06T13:20:05+00:00

bonjour,

J'utilise cette commande pour imprimer de nombreux .JPG :

ShellExecute 0&, "Print", NomEtChemin, "", "", 1

Cette commande fonctionne parfaitement sauf qu'elle envoie une boite de dialogue ou il suffit de faire Enter pour lancer l'impression.

J'ai essayé sans résultat :

SendKeys "~"

Une autre idée ?

Merci

A+

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

Anonyme
2014-11-06T16:54:32+00:00

Bonjour,

Tu as regardé cet exemple à cette adresse :

http://www.jpsoftwaretech.com/open-or-print-files-in-vba/

Public Enum actionType

  openfile

  printfile

End Enum

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

 '------------------------------------------------

Function ExecuteFile(fileName As String, action As actionType)

' action can be either "Openfile" or "Printfile".

Dim sAction As String

  Select Case action

    Case 0 ' openfile

      sAction = "Open"

    Case 1 ' printfile

      sAction = "Print"

  End Select

  ShellExecute 0, sAction, fileName, vbNullString, "", 0

  Application.Wait Now() + TimeValue("00:00:01")

   Application.SendKeys "I"

End Function

'------------------------------------------------

Sub test()

Dim Fichier As String

Fichier = "c:\chemin\NomImage.jpg"

ExecuteFile Fichier, printfile

End Sub

'------------------------------------------------

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

2 réponses supplémentaires

  1. Anonyme
    2014-11-06T21:58:53+00:00

    Merci du retour!

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2014-11-06T21:23:47+00:00

    Bonsoir MichD,

    Pour la petite histoire j'avais aussi essayé avec Do Events mais ça marche pas non plus...

    Application.SendKeys "I" ne convient pas car ça envoie la touche à ma feuille et ça ne va pas.

    en revanche j'ai retenu :

    Application.Wait Now() + TimeValue("00:00:01")

    avec:

    Application.SendKeys "~"

    ...qui fonctionne impec.

    Merci encore.

    A+

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire