IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Impression de fichiers sans les ouvrir


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut Impression de fichiers sans les ouvrir
    Bonjour,

    J'ai lu cette discussion.

    De mon côté, par contre, je voudrais utiliser ce même code pour imprimer, sans ouvrir les fichiers. Alors j'ai remplacé - naïvement, peut-être - "open" par "print" et bien entendu ça ne marche pas. PMO2017 saurais-tu m'indiquer comment modifier cette ligne?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour à tous, luca.donati,

    Peut être avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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)
     
    Const SW_SHOWNORMAL = 1
     
    Sub luca()
    Dim CheminEtFichier As String
    CheminEtFichier = "C:\lefichier.pdf"  'à adapter
    Call PrintPDF(CheminEtFichier)
    End Sub
     
    Sub PrintPDF(myFullName As String)
    ShellExecute Application.hwnd, "PRINT", myFullName, vbNullString, vbNullString, SW_SHOWNORMAL
    End Sub
    Il faudra adapter la variable CheminEtFichier

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 53
    Points
    53
    Par défaut
    Merci PMO2017. Malheureusement cela ne marche pas encore.
    En fait, la ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute Application.hwnd, "PRINT", nomefile, vbNullString, vbNullString, SW_SHOWNORMAL
    Ne produit strictement aucun effet, même pas un message d'erreur!
    En fait, je t'envoie mon code tout entier ci-dessous; il y a aussi une autre macro que tu as déjà commenté dans un autre post d'il y a quelques jours (chez toi ça marche, pas chez nous, peut-être à cause de la nature des pages).

    Or, je crois comprendre que la commande ShellExecute... s'attend à un nom de fichier, alors que je' lui envoie une URL, en fait.
    Est-ce que définir l'argument de ma Sub "imprime" autrement que comme String serait suffisant? (j'ai essayé "URL", mais il me dit que je l'ai défini tout seul et qu'il ne connaît pas ce type...).
    Peux-tu m'aider encore?
    (Carocaro630, je ne suis pas sûr que profiter de ton post de cette façon soit très gentil. Je m'en excuse...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Option Explicit
    Dim URL As String
     
    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)
     
    Const SW_SHOWNORMAL = 1
     
    Sub CicloDiStampa()
    Dim ur As Integer, r As Integer
        ur = Cells(65536, 1).End(xlUp).Row
        For r = 1 To ur
            If Cells(r, 1).Hyperlinks.Count <> 0 Then
                URL = Cells(r, 1).Hyperlinks(1).Address
                'stampa 'autre macro qui ne marche pas chez moi - désactivée pour l'instant
                imprime (URL)
            End If
        Next
    End Sub
     
    Sub imprime(nomefile As String)
    ShellExecute Application.hwnd, "open", nomefile, vbNullString, vbNullString, SW_SHOWNORMAL
    ShellExecute Application.hwnd, "PRINT", nomefile, vbNullString, vbNullString, SW_SHOWNORMAL
    End Sub
     
     
    Sub stampa()
    Dim oIExplorer As Object, wscript As Object
     
        On Error Resume Next
        'il valore 6 corrisponde alla stampa
        Const OLECMDID_PRINT = 6
        'Const OLECMDID_PRINT2 = 49
        'con 2 eseguo il comando senza chiedere conferma
        Const OLECMDEXECOPT_DONTPROMPTUSER = 2
     
        Set oIExplorer = CreateObject("InternetExplorer.Application")
        'carico l'indirizzo trovato
        oIExplorer.Navigate URL
     
        'imposta = 1 se vuoi aprire (o meglio vedere) la pagina web
        oIExplorer.Visible = 0
     
        'attendo che la pagina sia caricata
        Do While oIExplorer.ReadyState <> 4
            wscript.sleep 1000
        Loop
        oIExplorer.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
        'oIExplorer.ExecWB OLECMDID_PRINT2, OLECMDEXECOPT_DONTPROMPTUSER
     
    End Sub

Discussions similaires

  1. [XL-2007] Copier des fichiers sans les ouvrir
    Par mouftie dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/03/2015, 09h33
  2. [Débutant] Impression auto des fichiers sans les ouvrir
    Par da_latifa dans le forum ASP.NET
    Réponses: 9
    Dernier message: 05/12/2011, 23h31
  3. [XL-2003] Récupérer les données de plusieurs fichiers d'un même répertoire sans les ouvrir
    Par mattic59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2011, 20h45
  4. Réponses: 3
    Dernier message: 23/10/2010, 21h57
  5. Réponses: 2
    Dernier message: 20/03/2008, 09h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo