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 :

Imprimer des selections excel en pdf par VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Imprimer des selections excel en pdf par VBA
    Si qqn a deja fait cela, j'aimerais avoir de l'aide. Mon probleme est que j'ai 4 feuilles excel et je selectionne des cellules dans chacune d'elle.

    Situation:

    J'ai deja une application qui imprime 4 feuilles de papier don chacune correspond a 1 feuille Excel. Moi je voudrait faire en sorte que c'est 4 feuilles donne 1 fichier pdf seulement. Je me demande s'il es possible de faire un range incluant des cellules de plusieurs feuilles et également les séparer par page ds mon pdf.

    Je crois bien que ce projet est tre compliqué et ne sera pas faisable.

    Mais si qqn se sent d'attaque pour m'aider et bien MERCI.
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
     
    Sheets("Production").Select
        If (imp_prod) Then
            Range("Production!B1:N" & Ind_Prod).Select
     
            ActiveSheet.PageSetup.PrintArea = "$B$1:$T" & Ind_Prod
            With ActiveSheet.PageSetup
                .LeftMargin = 0.8
                .RightMargin = 0.7
                .TopMargin = 2.5
                .BottomMargin = 2.5
                '.HeaderMargin =
                .PrintHeadings = False
                .PrintGridlines = False
                .PrintComments = xlPrintNoComments
                .PrintQuality = 600
                .CenterHorizontally = True
                .Orientation = xlLandscape
                .PaperSize = xlPaperLetter
                .Zoom = 80
                .PrintErrors = xlPrintErrorsDisplayed
            End With
            If (imp_pdf) Then
     
               oldPrinter = Application.ActivePrinter
              Application.ActivePrinter = "Adobe PDF sur Ne01:"
              myPath = "C:\"
              myFilename = NomFichierSom & "Prod"
              ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="Adobe PDF sur Ne01:"
              Application.ActivePrinter = oldPrinter
     
     
         End If
     
            'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        End If
     
        Sheets("SommaireMat").Select
        If (imp_prod) Then
            Range("SommaireMat!B1:E" & Ind_Prod2).Select
            ActiveSheet.PageSetup.PrintArea = "$B$1:$E" & Ind_Prod2
     
            With ActiveSheet.PageSetup
                .LeftMargin = 0.8
                .RightMargin = 0.7
                .TopMargin = 2.5
                .BottomMargin = 2.5
                '.HeaderMargin =
                .PrintHeadings = False
                .PrintGridlines = False
                .PrintComments = xlPrintNoComments
                .PrintQuality = 600
                .CenterHorizontally = True
                .Orientation = xlPortrait
                .PaperSize = xlPaperLetter
                .Zoom = 100
                .PrintErrors = xlPrintErrorsDisplayed
            End With
              If (imp_pdf) Then
     
               oldPrinter = Application.ActivePrinter
              Application.ActivePrinter = "Adobe PDF sur Ne01:"
              myPath = "C:\"
              myFilename = NomFichierSom & "SommMAt"
             'ActiveWindow.SelectedSheets.PrintOut PrtoFileName:=myPath & myFilename & ".ps", PrintToFile:=True
              Application.ActivePrinter = oldPrinter
     
     
         End If

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Avec Acrobat Distiller, il est possible d'enregistrer plusieurs feuilles en pdf.
    Je donnes toujours le code pour sélectionner tes feuilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
    Regarde si sans rien changer à "SelectedSheets" tu peux lancer "l'impression"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="Adobe PDF sur Ne01:"
    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Merci pour votre reponse
    Merci , j'avais reussi a faire la meme chose avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveWorkbook.PrintOut Copies:=1, ActivePrinter:="Adobe PDF sur Ne01:"
    Cependant, jai des feuilles trop longues et cela fait 2 pages ds le pdf

    je vais essayer de voir si on peut jouer avec les propriétés du pdf ou de la feuille Excel.

    Merci encore

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu devrais regarder du côté de PageSetup. Je te mets ce que j'ai pour la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With ActiveSheet.PageSetup
            .FitToPagesWide = 1   ''Définit le Nbre de pages en largeur
            .FitToPagesTall = 1     'Définit le nbre de pages en hauteur
        End With
    A+

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tiens, justement, à propos de ceux qui répondent pas aux réponses, tu en es où...

    A+

Discussions similaires

  1. [XL-2010] Numériser des documents au format PDF sous VBA excel
    Par cco86260 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/01/2014, 11h14
  2. Réponses: 5
    Dernier message: 06/08/2012, 03h31
  3. Réponses: 0
    Dernier message: 22/01/2011, 15h32
  4. transformer des infos excel en txt par vba
    Par origami82 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/02/2010, 22h01
  5. MEFC par Excel & Reconnaissance couleurs par VBA
    Par westeban29 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/01/2008, 10h31

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