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

  1. #1
    Candidat au Club
    publipostage en pdf avec nom de fichiers diffèrent
    Bonjour et merci à ceux qui prendront le temps de se pencher sur mon sujet.

    Voulant me penché sur le vba mais étant totalement novice en la matière , je suis totalement largué pour le moment.

    voici mon soucis ,

    j'ai une série de document word que je met en publipostage, jusque là tout va bien enfin presque.

    Si j'effectue mon publipostage directement avec word il me créer un pdf avec tout mes documents à la suite.
    Si j'effectue mon publipostage avec PDF Maker , il me créer des fichiers pdf indépendants pour chaque document , là c'est déjà mieux , le problème est qu'il me les nomme pdfmailer 001, pdfmailer 002 etc..... et j'ai plus de 200 courriers.

    J'aimerai trouver une solution pour que ces fichiers se nomment lors du publipostage ou se renomment en prenant les infos concernant le nom du destinataire dans le fichier excel que j'utilise pour le publipostage afin de ne pas avoir a renommer chaque pdf manuellement.

    En espérant être compréhensible.

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message

    Si j'effectue mon publipostage avec PDF Maker , il me créer des fichiers pdf indépendants pour chaque document , là c'est déjà mieux , le problème est qu'il me les nomme pdfmailer 001, pdfmailer 002 etc..... et j'ai plus de 200 courriers.
    Bonjour,

    Si cette solution convient, cette procédure à mettre dans un module standard d'un fichier Excel permet de renommer et de déplacer une série de fichiers pdf dans un nouveau répertoire. Le nom des fichiers pdf dans la source correspond implicitement à l'ordre des enregistrements dans le tableau Excel ayant servi au publipostage.
    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
     
    Sub RenommerEtDeplacer()
     
    Dim oFSO As Object
    Dim RepertoireSource As String, RepertoireCible As String
    Dim I As Long, DerniereLigne As Long, LigneDeTitre As Long
    Dim ShListePdf As Worksheet
    Dim AireListePdf As Range
     
        On Error GoTo Fin
     
        RepertoireSource = ActiveWorkbook.Path & "\Source\"
        RepertoireCible = ActiveWorkbook.Path & "\Cible\"
     
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set ShListePdf = Sheets("Liste des pdf")  ' Adapter
     
        With ShListePdf
     
             LigneDeTitre = 10
             DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
     
             If DerniereLigne = LigneDeTitre Then GoTo Fin
     
             Set AireListePdf = .Range(.Cells(2, 1), .Cells(DerniereLigne, 1))
     
             For I = 1 To AireListePdf.Count
                 If oFSO.FileExists(RepertoireSource & AireListePdf(I)) Then
                    oFSO.MoveFile RepertoireSource & AireListePdf(I), RepertoireCible & AireListePdf(I).Offset(0, 1)
                 End If
             Next I
     
       End With
     
    Fin:
     
        Set AireListePdf = Nothing
        Set oFSO = Nothing
        Set ShListePdf = Nothing
     
    End Sub


    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Candidat au Club
    Bonjour,

    n'ayant pas eu le temps de me pencher sur le sujet ces derniers temps, merci pour cette réponse et les lignes de codes.
    Je vais essayer de mettre cela en place et vous tiens informé des suites .

    Merci
    Cordialement

  4. #4
    Candidat au Club
    Bonjour,

    alors je rencontre un petit soucis et je dois vraiment être plus mauvais que je ne le pensais.
    j'ai remplacé dans les lignes de codes "\source\" et "\cible\" par les liens de mon répertoire source et de mon répertoire cible ainsi que "liste des pdf" par le lien du fichier excel que j'ai créé contenant le nom de mes fichiers pdf et leurs nouveaux noms.
    Mais lorsque j’exécute la macro celle ci se referme sans qu'aucun fichier ne soit traité.

    Serait il possible d'ajouter des commentaires sur la macro, afin que je comprenne bien son fonctionnement et son déroulement et que je comprenne où j'ai commis une erreur en effectuant les remplacements dans ce code que vous m'avez gentiment transmis ou si je n'ai pas créer ma liste de pdf ou la macro sur le bon fichier.

    en vous remerciant encore pour le travail que vous effectuez.
    Cordialement

  5. #5
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message

    Bonjour,

    Le mieux serait d'afficher votre code.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  6. #6
    Candidat au Club
    Bonjour,

    n'ayant pas eu beaucoup de temps pour me remettre sur le sujet, voici ou j'en étais resté avec toujours le même problème que je ne saisi pas.

    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
     
     
    Sub RenommerEtDeplacer()
     
    Dim oFSO As Object
    Dim RepertoireSource As String, RepertoireCible As String
    Dim I As Long, DerniereLigne As Long, LigneDeTitre As Long
    Dim ShListePdf As Worksheet
    Dim AireListePdf As Range
     
        On Error GoTo Fin
     
        RepertoireSource = ActiveWorkbook.Path & "F:\Tournuscimes\2020\test publipostage\pdf"
        RepertoireCible = ActiveWorkbook.Path & "F:\Tournuscimes\2020\test publipostage\Pdf Renomme"
     
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set ShListePdf = Sheets("F:\Tournuscimes\2020\test publipostage\pdf\liste pompier")  ' Adapter
     
        With ShListePdf
     
             LigneDeTitre = 10
             DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
     
             If DerniereLigne = LigneDeTitre Then GoTo Fin
     
             Set AireListePdf = .Range(.Cells(2, 1), .Cells(DerniereLigne, 1))
     
             For I = 1 To AireListePdf.Count
                 If oFSO.FileExists(RepertoireSource & AireListePdf(I)) Then
                    oFSO.MoveFile RepertoireSource & AireListePdf(I), RepertoireCible & AireListePdf(I).Offset(0, 1)
                 End If
             Next I
     
       End With
     
    Fin:
     
        Set AireListePdf = Nothing
        Set oFSO = Nothing
        Set ShListePdf = Nothing
     
    End Sub





    Ceci n'ai qu'une liste parmi toute la série que j'ai a traiter.
    J'ai surement commis une belle erreur quelques part en modifiant les lignes de codes que vous m'avez transmis , mais je n'ai pas trouver encore le temps de me plonger dans le vba afin de comprendre son fonctionnement.
    En vous remerciant encore pour votre aide.

    .

  7. #7
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message

    Bonjour,

    Je vois des fichiers apparemment correctement renommés. Où est le problème ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  8. #8
    Candidat au Club
    Bonjour ,

    lorsque j’exécute la macro la fenêtre de macro s'affiche le nom RenommerEtDeplacer et lorsque je fais exécuter celle ci se ferme et je n'ai aucune action , aucun fichier n'a changer au sein de mon dossier source et aucun fichiers créé et renommé au sein de mon dossier destination.

    Merci

  9. #9
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message

    C'est pas possible :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
     Set ShListePdf = Sheets("F:\Tournuscimes\2020\test publipostage\pdf\liste pompier")  ' Adapter


    Quel est le nom de l'onglet ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  10. #10
    Candidat au Club
    Le nom de l'onglet contenant les anciens noms de fichiers et les nouveau noms du fichier "Liste pompier" est " liste "

  11. #11
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message
    Le nom de l'onglet contenant les anciens noms de fichiers et les nouveau noms du fichier "Liste pompier" est " liste "
    Eh bien, y a plus qu'à remplacer.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  12. #12
    Candidat au Club
    c'est là que je ne pige pas comment remplacer par le nom de l'onglet "liste" du fichier excel "liste pompier" contenant mes anciens et nouveaux noms de fichiers pdf.

  13. #13
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message
    c'est là que je ne pige pas comment remplacer par le nom de l'onglet "liste" du fichier excel "liste pompier" contenant mes anciens et nouveaux noms de fichiers pdf.
    Voilà le code à utiliser :

    Sinon, vos fichiers sont-ils bien dans le répertoire F:\Tournuscimes\2020\test publipostage\pdf ?
    Attention aux antislashs à la fin des noms des répertoires.

    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
     
    Sub RenommerEtDeplacer()
     
    Dim oFSO As Object
    Dim RepertoireSource As String, RepertoireCible As String
    Dim I As Long, DerniereLigne As Long, LigneDeTitre As Long
    Dim ShListePdf As Worksheet
    Dim AireListePdf As Range
     
        On Error GoTo Fin
     
        RepertoireSource = ActiveWorkbook.Path & "F:\Tournuscimes\2020\test publipostage\pdf\"              ' Attention à l'antislash à la fin
        RepertoireCible = ActiveWorkbook.Path & "F:\Tournuscimes\2020\test publipostage\Pdf Renomme\"  ' idem 
     
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set ShListePdf = Sheets("Liste ")  ' Attention au caractère blanc à la fin du nom
     
        With ShListePdf
     
             LigneDeTitre = 10
             DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
     
             If DerniereLigne = LigneDeTitre Then GoTo Fin
     
             Set AireListePdf = .Range(.Cells(2, 1), .Cells(DerniereLigne, 1))
     
             For I = 1 To AireListePdf.Count
                 If oFSO.FileExists(RepertoireSource & AireListePdf(I)) Then
                    oFSO.MoveFile RepertoireSource & AireListePdf(I), RepertoireCible & AireListePdf(I).Offset(0, 1)
                 End If
             Next I
     
       End With
     
    Fin:
     
        Set AireListePdf = Nothing
        Set oFSO = Nothing
        Set ShListePdf = Nothing
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  14. #14
    Candidat au Club
    Merci beaucoup ,

    ça va déjà beaucoup mieux , je commence a comprendre.

    Me reste un problème , j'ai vérifié mes fichiers (pdf et excel ) sont bien dans le répertoire sources, en mode débogage cela à l'air de fonctionner les incrémentations se font bien mais il ne passe jamais par la ligne 29 "movefile", et lorsque j’exécute la macro toujours aucun fichier ne s'enregistre dans mon répertoire cible.
    J'ai essayé en mettant comme imprimante Adobe pdf mais aucune différence .

  15. #15
    Expert éminent sénior
    Citation Envoyé par Yann3110 Voir le message

    Désolé, j'ai fait n'importe quoi....

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    RepertoireSource = "F:\Tournuscimes\2020\test publipostage\pdf\"              ' Attention à l'antislash à la fin
    RepertoireCible = "F:\Tournuscimes\2020\test publipostage\Pdf Renomme\"  ' idem
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  16. #16
    Candidat au Club
    Bonjour,

    ce serait plutôt pour moi .

    Alors bonne nouvelle et un grand merci ,ça fonctionne ,mais cela ne serait pas marrant si il n'y avait pas un hic .

    Arrivé au dernier fichier il me met une erreur 52 Nom de fichier ou numéro incorrect.

    j'ai cru que cela pouvait venir du nom de fichier en majuscule mais que nenni .

    Une idée de la cause ?

  17. #17
    Candidat au Club
    Eurêka , j'ai trouvé la cause du problème , je pensais qu'il s'agissait d'un retour à la ligne automatique sur la cellule du dernier nom de fichier mais ce n’était pas le cas .

    tout fonctionne à présent à merveille , un grand merci à vous , Eric KERGRESSE, pour le temps que vous avez passer , et d'avoir répondu a mon ignorance en la matière.

    Me reste tout de même a me plonger dans tout ça ( le vba ) car j'aime bien comprendre les choses.

    Encore merci

    maintenant au boulot pour changer tous mes noms de fichiers