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 :

Macro Excel générant un fichier PDF pour chaque ligne d'une feuille excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Macro Excel générant un fichier PDF pour chaque ligne d'une feuille excel
    Bonjour à tous,

    Tout est dit dans le titre.

    Ne me demandez surtout pas la raison, c'est une obligation interne pour suivi de documents.
    Imaginons un tableau de 4 colonnes avec X lignes
    Il faut que la macro génère X fichiers PDF comportant chacun une seule ligne avec les 4 cellules de la ligne.

    Merci de ce que vous pourrez faire...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 153
    Points : 215
    Points
    215
    Par défaut
    Bonjour,

    Après une courte recherche, je pense que tu devrais utiliser utiliser un logiciel type PDF creator, pour pouvoir imprimer en PDF, avec une formule du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activesheet.("PLAGE").PrintOut Copies:=1, ActivePrinter:="PDFCreator"
    En remplaçant ("PLAGE") par les 4 cellules à mettre sur le PDF et en faisant une boucle, sur toutes les lignes à mettre en PDF, et "PDFCreator" par le nom de l'imprimante virtuelle de PDFcreator.

    Bien cordialement,

    Mr Poulpe

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Commence par découper ta feuilles en pages en insérant des sauts de page entre chaque ligne.
    Voir la méthode HPageBreack de l'objet Worksheet.

    Si tu veux avoir toutes tes pages dans un même PDF (avec une ligne par page), il te suffit d'utiliser les objets de PDFCreator.
    Récupère PDFCreator sur un site fiable et installe-le.
    Dans son répertoire d'installation, tu trouveras plusieurs exemples de code pour l'utiliser en VBA.

    Si tu veux avoir un fichier par page, il suffit de les imprimer une par une, en les enchainant avec une boucle For to limitée au nombre de lignes non vides.
    Il suffit de mettre le numéro de ligne dans les deux premiers paramètres de ta commande PrintOut qui génère tes PDF.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci Poulpe, je regarde ça

    En parallèle, une macro qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub EnregLignePDF()
    Dim i%, n%, f%
    With ActiveSheet
    n = .Range("A" & .Rows.Count).End(xlUp).Row
    .Rows("1:" & n).Hidden = True
    For i = 3 To n
    .Rows(i).Hidden = False
    f = f + 1
    .ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Enreg " & f & ".pdf"
    .Rows(i).Hidden = True
    Next i
    .Rows.Hidden = False
    End With
    End Sub
    En remplaçant Enreg par le nom générique à donner aux pdf.
    Les PDF seront enregistrés dans le dossier contenant le classeur excel.

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne vois pas l'intérêt de mettre dans un code un "With ActiveSheet"

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub EnregLignePDF()
       Dim i%, n%, f%
       n = Range("A" & Rows.Count).End(xlUp).Row
       Rows("1:" & n).Hidden = True
       For i = 3 To n
          Rows(i).Hidden = False
          f = f + 1
          ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\Enreg " & f & ".pdf"
          Rows(i).Hidden = True
       Next i
       Rows.Hidden = False
    End Sub
    Deux ligne et quelques "." en moins et ça marche aussi bien.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    je ne sais pas mais ca marche !

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par ZenJP Voir le message
    je ne sais pas
    Recopier un code récupéré sans chercher à le comprendre, c'est la meilleure façon de stagner.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. [FPDF] générer un fichier pdf pour chaque ligne de base de données
    Par abdelkarim_1987 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 02/07/2013, 11h44
  2. Réponses: 8
    Dernier message: 01/10/2010, 10h52
  3. Macro pour se déplacer sur une feuille excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2010, 20h41
  4. Réponses: 4
    Dernier message: 10/12/2009, 19h25
  5. Imprimer une feuille excel vers un fichier .pdf
    Par ghosty04 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2009, 16h14

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