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 :

Ouvrir tous les pdf d'un dossier et imprimer uniquement les pages 3 et 5 par exemple. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut Ouvrir tous les pdf d'un dossier et imprimer uniquement les pages 3 et 5 par exemple.
    Bonjour,

    j'arrive à ouvrir tous les pdf et à les imprimer dans leurs intégralités à l'aide de la macro ci-dessous.
    Mais je voudrais pouvoir imposer les pages à imprimer. Avez-vous une idée car je ne trouve pas ?
    Merci d'avance.

    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
    Option Explicit
     
    Private 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
     
    Private Sub PrintFichier(sNomFichier As String)
    Dim Rep As Integer
    Dim hWnd As Long
     
    'Commande shell pour lancer l'impression du pdf ouvert
        Rep = ShellExecute(hWnd, "Print", sNomFichier, 0&, 0&, 1)
     
    End Sub
     
    Sub Tst()
    Dim sdossier As String
    Dim sFichier As String
    Dim fich As String
     
     
    'Choix du répertoire
    Dim Repertoire As FileDialog
     
    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Repertoire.Show
     
    If Repertoire.SelectedItems.Count > 0 Then _
        MsgBox Repertoire.SelectedItems(1)
     
        sdossier = Repertoire.SelectedItems(1)
     
        fich = Dir(sdossier & "\*.pdf")
    'Boucle qui ouvre les pdf du dossier les uns après les autres
    Do While fich <> ""
     
        PrintFichier sdossier & "\" & fich
        fich = Dir
    Loop
     
    End Sub
    j'ai aussi ce petit code qui permet d'ouvrir le pdf à une certaine page mais j'arrive pas à combiner les 2.

    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
    Sub Bouton4_Cliquer()
     
    'ouvrir pdf à une page
     
        Dim sPDFfile As String
        Dim sAdobeCommand As String
        Dim WshShell As Object
        Const cAdobeReaderExe As String = "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe"
     
        sPDFfile = "P:\Partage Général\Production\Stérilisation Bressuire\2015\février\2015-02-02\MPI_1_9_-_119°_75mn_[02_02_2015_08_30_22].pdf"
     
        sAdobeCommand = " /a ""page=3=Open Actions"" "
     
        Shell cAdobeReaderExe & sAdobeCommand & Chr(34) & sPDFfile & Chr(34), vbNormal
     
     
        Application.Wait (Now + TimeValue("0:00:05"))
     
    end sub

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut Adobe Acrobat xx.0 Type library
    Bonjour.

    Si tu as une licence Acrobat, ce n'est pas compliqué : tu utilises la référence "Adobe ACrobat xx.0 Type Library".
    En gros, tu ouvres un objet AcroAVDoc sur chaque chemin, puis tu utilises la méthode PrintPagesSilent de cet objet, méthode qui comportent 2 paramètres intéressants : nFirstPage et nLastPage.

    Si tu n'as pas de licence, je ne sais pas. Avec ShellExecute, je ne vois pas et avec Shell ("AcroRd32.exe...) je ne connais pas de paramétrage qui permette de choisir les pages.

    En espérant que cela t'aide,

    pgz

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pas forcément besoin d'Adobe Acrobat Pro, voir Acrobat Reader : Imprimer un PDF de la page x à y via des SendKeys et adapter à ton contexte càd ici sPages = "3;5" et sans doute en "décommentant" les Sleep 500

    Si tu as Adobe Acrobat Pro ( ce qui est mieux ) alors voir ici : Acrobat Imprimer un PDF de la page x à y

    Pour ce qui est de lister par exemple les PDFs d'un dossier voir ici : Liste des fichiers d'un dossier avec recherche récursive ou non via les APIs


    Voir aussi à l'occasion : Acrobat Reader : Retrouver le chemin d'Acrobat Reader via la base de registre

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut "Imprimer un PDF de la page x à y via des SendKeys" mais sans succès.
    Tout d'abord merci pour votre retour.

    J'ai essayé "Imprimer un PDF de la page x à y via des SendKeys" mais sans succès.

    Je me suis trompé je suis sur Excel 2010 et j'ai l'impression qu'excel perd la main lorsqu'adobe s'ouvre.

    j'ai l'erreur "Microsoft Excel ne trouve aucun contenu à imprime" (il s'agit du dernier bouton dans la pièce jointe.

    test.xlsm

    peut-être que le pdf pourrait être ouvert dans un userform et me permettre l'édition

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par rastaquere Voir le message
    Tout d'abord merci pour votre retour.

    Je me suis trompé je suis sur Excel 2010 et j'ai l'impression qu'excel perd la main lorsqu'adobe s'ouvre.
    Office 2010 peut ouvrir les fichiers PDF directement. Ensuite, il suffit de passer par l'impression classique en choisissant les pages à imprimer.
    Si tu avais mis ta version d'Office dès le début, tu aurais épargné bien du temps et bien du verbiage.

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, je t'ai dit quoi à propos de Sleep ? Autrement c'est le principe de base du senkeys ( avec tous les pbs attenants ).
    Le message concernant l'impression est suffisamment explicite, je pense.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut
    Merci kiki29. c'est sur cela fonctionne mieux avec les sleep500.

    clementmarcotte ta réponse ne correspond pas à ma question et possible d'enregistrer en pdf depuis 2010 mais ouvrir ??? et pas d'intérêt dans mon cas le but étant d'automatiser. Merci quand même ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/02/2015, 05h07
  2. Réponses: 1
    Dernier message: 10/11/2011, 17h45
  3. Imprimer tous les pdf d'un dossier
    Par Djromé dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 09/03/2010, 16h24
  4. Impression de tous les pdf d'un dossier
    Par polinevol dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 12/11/2008, 12h06
  5. imprimer toutes les images d'un dossier
    Par chat84 dans le forum Access
    Réponses: 1
    Dernier message: 19/05/2006, 14h45

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