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

Excel Discussion :

[VBA-E]Impression automatique de plusieurs PDF


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [VBA-E]Impression automatique de plusieurs PDF
    Bonsoir à toute la communauté,
    Après quelques heures de recherches je ne trouve pas mon bonheur.
    Il faut dire que mon niveau de béotien ne me facilite pas la compréhension des posts.
    Voilà mon défi
    j'ai un fichier excel comportant autant de feuilles que d'élèves, feuilles portant le nom de l'élève.
    Je souhaiterais imprimer chaque feuille dans un pdf nommé "Pierre Cardin.pdf"
    Mon code actuel me permet de sélectionner la zone d'impression et de lancer pdf creator. Mais je voudrais que cela reste transparent à l'utilisateur. (200 élèves donc 200 manipulations )
    voici mon 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
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    Sub collectenote()
    'le but de la macro est de collecter la note finale de l'étudiant
    'et créer une feuille de résumé avec tri alphabétique
    'création de la feuille de synthèse
    'Worksheets("synthèse").Add
    Range("B1").Value2 = "Nom de l'étudiant"
    Range("C1").Value2 = "Moyenne"
    'Cells("B2").Activate
     
    'vérification du nombre d'onglet
     
    'balayage de chaque feuille pour y récupérer les informations sauf
     
    '"Toutes fac"
    '"Toutes fac (4)"
     i = 2 'index de ligne dans la feuille synthèse
     
     
    valeurrecherchée = "Résultat /20"
        For Each c In Worksheets
     
            nom = c.Name
            colmoy = 0
            lignemoy = 0
            If c.Name <> "synthèse" And  c.Name <> "Toutes fac" And c.Name <> "Toutes fac (4)" Then
            Worksheets(c.Name).Activate
            'Test pour voir s'il y a une valeur : on copie alors les valeurs
     
            'recherche de la moyenne
     
            colmoy = Cells.Find(valeurrecherchée, , , , xlByRows, xlPrevious).Column  'trouve la derniere ligne ecrite sans tenir compte des lignes d'entête
            lignemoy = Cells.Find(valeurrecherchée, , , , xlByRows, xlPrevious).Row + 1 'trouve la derniere colonne ecrite
            moyenne = Cells(lignemoy, colmoy).Value2
     
            'collage de la note dans la feuille de synthèse en face du nom de l'étudiant
     
            Worksheets("synthèse").Cells(i, 2).Value2 = nom
            Worksheets("synthèse").Cells(i, 3).Value2 = moyenne
     
            'définition d'une zone et impression de celle-ci
     
            lastrow = Cells.Find("*", , , , xlByRows, xlPrevious).Row  'trouve la derniere ligne ecrite sans tenir compte des lignes d'entête
            lastcol = Cells.Find("*", , , , xlByRows, xlPrevious).Column 'trouve la derniere colonne ecrite
     
            Worksheets(c.Name).PageSetup.PrintArea = Range(Cells(1, 1), Cells(lastrow + 4, lastcol + 2)).Address
            With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0.393700787401575)
            .RightMargin = Application.InchesToPoints(0.393700787401575)
            .TopMargin = Application.InchesToPoints(0.393700787401575)
            .BottomMargin = Application.InchesToPoints(0.393700787401575)
            .HeaderMargin = Application.InchesToPoints(0.511811023622047)
            .FooterMargin = Application.InchesToPoints(0.511811023622047)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .CenterHorizontally = False
            .CenterVertically = False
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            .PrintErrors = xlPrintErrorsDisplayed
        End With
            'impression dans un fichier
     
            Application.ActivePrinter = "PDFCreator sur Ne00:"
            Selection.PrintOut Copies:=1, ActivePrinter:="PDFCreator sur Ne00:", _
            Collate:=True
     
            i = i + 1
            End If
           Next c
        Worksheets("synthèse").Activate
     
    End Sub
    Je pensais faire un truc du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     printout c.name & ".xls"
    Avez vous une idée qu'un débutant pourrait facilement comprendre?

    Un tout grand merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Bonjour et bienvenue sur le forum,

    Avec PDFCreator, il faut jouer avec la reference PDFCreator.

    Le probleme avait été traité sous Excel ici

    Bon développement...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par dadavyvy
    Bonjour et bienvenue sur le forum,

    Avec PDFCreator, il faut jouer avec la reference PDFCreator.

    Le probleme avait été traité sous Excel ici

    Bon développement...
    Salut dadavyvy,
    Comme indiquer dans ton lien, j'ai bien créé un userform (bouton quitter et Traitement) ainsi qu'un module de classe appelé ExportPDF mais pas moyen de faire reconnaitre PDFCreator comme source.(message : "impossible d'ajouter une source au fichier spécifié).
    ensuite comment fait on pour se servir de ce code??? c'est dire mon incompétence
    Quand je fais "play" dans le user form il me donne l'erreur sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private WithEvents PDFCreator1 As PDFCreator.clsPDFCreator
    Private pErr As PDFCreator.clsPDFCreatorError
    Private opt As PDFCreator.clsPDFCreatorOptions
    Je me vois déjà en train d'enregistrer 200 fois un fichier
    Merci pour vos éclaircissements

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Pour cela, il faut activer la reference "PDFCreator" dans VBA menu Outils>References...
    Il faut donc que les ordis sur lesquels cette macro sera lancée ait cette référence, mais normalement oui, puisque PDFCreator y est installé...

Discussions similaires

  1. impression automatique d'un pdf
    Par sayen76 dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2015, 18h44
  2. [Batch] Impression automatique de fichiers PDF
    Par klef63 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 14/10/2014, 10h02
  3. Réponses: 2
    Dernier message: 01/06/2011, 00h22
  4. Réponses: 9
    Dernier message: 10/05/2007, 10h56
  5. [VBA-E] Impression page paire sur plusieurs onglets
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 17/02/2005, 15h19

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