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

VBA Word Discussion :

Boucle Publipostage & PDF - VBA


Sujet :

VBA Word

  1. #21
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Good news !... Ce pignouf d'ordinateur ne voulait pas prendre en compte la macro tant que l'ordinateur n'avait pas redémarrer deps l'installation de PDFcreator (je ne l'éteinds pas souvent... il met 20 min à chq arrêt ou redémarrage...!!).

    Donc ça c'est fait !

    Reste le pblématique de boucle.
    Oui, j'ai bien trier les enregistrements en fonction des 2 critères.
    Par contre, pour envoyer les données vers un fichier, cela me semblait plus adapter qd on avait une lettre ds laquelle il y avait plusieurs élements (plusieurs lignes d'enregistrements type facture). Mais là, ça voudrait dire qu'il faudrait écrire la lettre entièrement sur VBA et qu'elle se génère autant de fois que cela correspond à la concatenation des 2 critères ? C'est cela à quoi tu penses ? Ca m'avait traversé l'esprit, mais au vue de la mise en forme, insertion de logo, etc... ça m'avait paru bcp + compliqué que d'être capable de lui dire
    "tu imprimes de i à j".
    sachant que i = le premier enregistrement correspondant à la combinaison de 2 critères
    et que j = le dernier enregistrement ayant aussi ces 2 critères.

    Mais si ça te semble être la meilleure méthode... je peux essayer.

  2. #22
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Ouf, pour le PDF

    Décris moi comment tu voudrais que tes documents sortent.
    On n'est pas obligé d'écrire tout le texte en VBA, il existe des subtilités qui nous évitent ça (les signets, les tableaux,...).

    Pour te donner un exemple de boucle,

    Si on travaille avec deux colonnes, il faut vérifier dans la première colonne l'élément précédent et tant qu'il ne change pas faire le même test dans la seconde colonne et prendre les actions ad hoc.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #23
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    En reprendre l'exemple du fichier Excel précédemment fourni, il faut que je sorte une lettre par client pour lui dire ce qu'il a acheté comme pendant l'année. Compte tenu de la nature des produits que ns vendons, on ne met q'un seul produit par page parce que le client va ensuite traiter le doc différemment selon les produits vendus.

    Lettre 1
    Cher M. GIRURDOT,

    Vous avez acheté une chaise pour 182,50 €
    (supposé mais pas inclus ds le courrier : auprès du distributeur 1).

    Lettre 2
    Cher M. ROTTUIGTA,

    Vous avez acheté une chaise pour 141 €
    (supposé mais pas inclus ds le courrier : auprès du distributeur 2).

    Lettre 3
    Cher M. GILLATTA,

    Vous avez acheté une chaise pour 50 €
    (supposé mais pas inclus ds le courrier : auprès du distributeur 3).

    Lettre 4
    Cher M. BARTURDO ,

    Vous avez acheté une chaise pour 50 €
    (supposé mais pas inclus ds le courrier : auprès du distributeur 3).

    On envoie ainsi un doc à chq client.
    Chq distributeur souhaitant savoir une synthèse des documents que nous envoyons à chacun de leurs clients, et ce en gardant les distinctions des produits.
    Donc j'imprime chacune des lettres issues du publipostage et je dois générer un fichier pdf pour les distributeurs. On aurait ici 3 fichiers (selon ci-dessus):
    chaise -distrib 1.pdf (1 page)
    chaise -distrib 2.pdf (1 page)
    chaise -distrib 3.pdf (2 pages)

  4. #24
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Si ce sont des documents qui contiennent les lettres que tu dois faire, on pourra pas les générer directement, mais il faudra fusionner des pdf pour faire un global.

    L'envoi sous la forme d'un listing peut-être générée beaucoup plus facilement.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #25
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Holà !

    Oui, chq document contient 1 à pl lettres.

    Je ne savais pas q'on pouvait fusionner des pdf ensemble... Et ça peut se faire en automatique ça ?

    L'envoi sous la forme d'un listing peut-être générée beaucoup plus facilement.
    Que veux-tu dire par là ?
    Perso, je trouverais que l'envoi du tableau (partiellement, enfin adapté à
    chq distributeur) serait effectivement + simple, et qu'il s'en débrouille pour avoir les copies lettres qui vont avec... Mais là, je ne crois pas que ce soit possible... parce qu'il y a un coté légal là-dedans et qu'ils ont besoin de la copie exact de ce que l'on a envoyé à chacun des clients.

    En fait, ds mon job, il y a un côté très procédurier (et ennuyeux en cela...!).

    Comment fusionnerait-on des doc pdf ?

  6. #26
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour les pdf, je vais regarder, mais c'est toujours avec PDFCreator.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #27
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Je ne l'ai pas dit assez ... mais Vraiment un grand MERCI pour l'aide que tu m'apportes !

  8. #28
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Oui,

    Mais tu me fais de infidélités.
    Tu poses les mêmes question sur le forum MS Word !!
    Je l'ai vu.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #29
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Je m'en doutais...
    J'avais vu que tu y intervenais de tps en tps aussi.

  10. #30
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Bonsoir !

    Je suis tombée sur un code permettant de filtrer les enregistrements à publiposter. Le hic, c'est que c'est écrit pour du SQL (once more !).



    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
    Sub SetQueryCriterion()
        Dim appOffice As Office.OfficeDataSourceObject
        Dim intItem As Integer
     
        Set appOffice = Application.OfficeDataSourceObject
        appOffice.Open bstrConnect:="DRIVER=SQL Server;SERVER=ServerName;" & _
            "UID=user;PWD=;DATABASE=Northwind", bstrTable:="Employees"
     
        With appOffice.Filters
            For intItem = 1 To .Count
                With .Item(intItem)
                    If .Column = "Region" Then
                        .Comparison = msoFilterComparisonNotEqual
                        .CompareTo = "WA"
                        If .Conjunction = "Or" Then .Conjunction = "And"
                    End If
                End With
            Next intItem
        End With
    End Sub

    Savez-vous / Sais-tu Oli si ce code est adaptable pour filtrer les enregistrements Excel. Auquel cas, je pourrais peut-être faire un filtre sur les données intéressantes (groupées suos un n° par exemple, bloc de données suivantes avec i+1, puis i +3).

    Ca semble realiste ?

    Merci,
    Elise

  11. #31
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Oui, on peut utiliser du sql avec Excel.

    http://silkyroad.developpez.com/VBA/ClasseursFermes/
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #32
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut Eureka !
    Bonjour !

    10 jours d'absence sur le forum, mais les recherches ont continué...

    J'ai la réponse !!! Il y a juste un mini truc, peut-être faut-il mettre un debug.print ou qq ch comme ça... j'ai essayé, mais ça ne marche pas...

    La macro de publipostage groupé fonctionne bien.
    Le truc : faire le publipostage de i à i + j avec "do while... loop" et non "for ...next" comme nous le faisions.
    Le j étant égal au nombre de combinaisons identiques "produit + intermediaire" existantes => 2 nouvelles colonnes sur le fichier Excel sont nécessaires:
    - L'une pour avoir un concatener "produit + intermediaire",
    - L'autre pour le nb d'éléments existants pour cette combinaison moins 1 (formule =nb.si(plage_nouvelle_colonne;critère)-1)
    j doit être décalé d'une ligne + haute : en ligne 2 on informe du nb de combinaisons identiques à celle existant sur la ligne 3, etc.

    Le pbl résiduel est :
    La macro fait doc groupé, puis fait un pdf, et ensuite il est sensé recommencer.

    MAIS ça ne marche que lorsque je fais un un point d'arrêt sur "loop" et que je fais "redémarrer" à chaque arrêt sur "loop".

    Si je ne mets pas le point d'arrêt, il s'emmêle les pinceaux et me donne un pdf uniquement pour le dernier courrier.


    Une idée ?
    Merci de votre aide.
    Et encore un grand merci à HeureuxOli sans qui je ne serai pas arrivée jusque là...
    Ci-joint la macro + le fichier Excel inclus formule

    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
    88
    89
    Sub MacroQuifonctionneEtImprimer()
     
    ' Déclaration des variables
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
    Dim j As Integer
    Dim stChemin As String
    Dim stNom As String
    Dim PDFCreator1 As New clsPDFCreator
     
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
        sup = MsgBox("Voulez-vous démarrer la fusion du document ?", vbYesNoCancel + vbQuestion, "Fusion ?")
     
    If sup = vbYes Then
     
    If ActiveDocument.MailMerge.DataSource.Name <> "" Then _
        rep = MsgBox("La fusion se fait avec la table suivante : " & ActiveDocument.MailMerge.DataSource.Name, vbYesNoCancel + vbQuestion, "Source")
     
    If rep = vbYes Then
    i = 1
     
    Do While i <= iR
       With oDoc.MailMerge
     
            j = .DataSource.DataFields(6).Value
     
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
            .DataSource.LastRecord = i + j
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
     
            ' Exécution du publipostage
            .Execute
     
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i + j
     
            'Utilisation de deux champs pour obtenir le nom du document
            DocName = .DataSource.DataFields(2).Value
            DocName = DocName & "-" & .DataSource.DataFields(1).Value
            Debug.Print DocName; i
     
        End With
     
        ' Sauvegarde du document publiposté
     
        With ActiveDocument
     
            .SaveAs "c:\" & DocName & ".doc"
     
       stChemin = ActiveDocument.Path
       stNom = ActiveDocument.Name
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = stNom
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
    End With
    ActiveDocument.PrintOut Background:=True
     
       With ActiveDocument
            .Save
            .Close
     
        End With
        End With
     
        i = i + j + 1
     
     
       'Next i
     
    Loop
     
    End If
    End If
     
    End Sub
    Fichiers attachés Fichiers attachés

  13. #33
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut Pbls enfin résolus !
    Bonjour à tous ceux qui ont suivi mes aventures de publipostage groupé, boucle, pdf... J'espère que mes recherches pourront aussi vous servir...

    Pour finir, j'avais donc un bug pour la sortie automatique en pdf car elle ne marchait qu'avec un point d'arrêt et en relançant à chaque fois (ce qui n'est pas hyper pratique quand on veut tout automatiser !!...)

    Voici le texte intégral qui fonctionne à présent !


    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
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    Sub Macro()
    ' Déclaration des variables
    Dim i As Integer
    Dim oDoc As Document
    Dim DocName As String
    Dim oDS As MailMergeDataSource
    Dim j As Integer
    Dim stChemin As String
    Dim stNom As String
    Dim PDFCreator1 As New clsPDFCreator
    Dim oldPrinter As String
     
    stChemin = ActiveDocument.Path
     
    oldPrinter = ActivePrinter
    'On va mettre en mémoire dans une variable le nom de l'imprimante par défaut
    ActivePrinter = "PDFCreator"
     
    ' Affectation des objets
    Set oDoc = ActiveDocument
    Set oDS = oDoc.MailMerge.DataSource
     
    iR = oDoc.MailMerge.DataSource.RecordCount
        sup = MsgBox("Voulez-vous démarrer la fusion du document ?", vbYesNoCancel + vbQuestion, "Fusion ?")
     
    If sup = vbYes Then
     
    If ActiveDocument.MailMerge.DataSource.Name <> "" Then _
        rep = MsgBox("La fusion se fait avec la table suivante : " & ActiveDocument.MailMerge.DataSource.Name, vbYesNoCancel + vbQuestion, "Source")
     
    If rep = vbYes Then
    i = 1
     
    With oDoc.MailMerge
    .DataSource.ActiveRecord = 1
    End With
     
    Do While i <= iR
       With oDoc.MailMerge
     
            j = .DataSource.DataFields(6).Value
     
            'Définition du premier et dernier enregistrement
            .DataSource.FirstRecord = i
            .DataSource.LastRecord = i + j
            ' Envoi des données dans un nouveau document
            .Destination = wdSendToNewDocument
            ' Exécution du publipostage
            .Execute
            ' Actualisation de l'enregistrement pour la sauvegarde
            .DataSource.ActiveRecord = i + j
            'Utilisation de deux champs pour obtenir le nom du document
            DocName = .DataSource.DataFields(2).Value
            DocName = DocName & "-" & .DataSource.DataFields(1).Value
            Debug.Print DocName; i
     
        End With
     
        ' Sauvegarde du document publiposté
     
        With ActiveDocument
            .SaveAs stChemin & "\" & DocName & ".doc"
     
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = DocName
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
     
    End With
    ActiveDocument.PrintOut Background:=False
    ' impression de la lettre au format PDF
    ActiveDocument.PrintOut PrintToFile:=False
    PDFCreator1.cPrinterStop = False
     
    PDFCreator1.cClearCache
    DoEvents
     
    'Attendre que la file d'attente soit vide
    Do Until PDFCreator1.cCountOfPrintjobs = 0
    DoEvents
    Loop
     
       With ActiveDocument
            .Save
            .Close
     
        End With
        End With
     
        i = i + j + 1
     
       'Next i
     
    Loop
     
    End If
    End If
     
    ActivePrinter = oldPrinter
     
     
    End Sub
    A bientôt pour d'autres aventures !
    Et merci encore !

  14. #34
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Histoire de ne pas perdre le paramètrage du PDFCreator, penser à ajouter un backup / restauration des paramètres
    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
    -------------------------------------------------------------
    ' Backup options PDFCreator avant de les modifier
    With PDFCreator1
            bckUseAutosave = .cOption("UseAutosave")
            bckUseAutosaveDirectory = .cOption("UseAutosaveDirectory")
            etc .
    ' Modifier les paramètres 
           .cOption("UseAutosave") = 1
           .cOption("UseAutosaveDirectory") = 1
    .....
    .....
    End With
     
    ' Abant de fermer le job PDF Restore options PDFCreator
        With PDFCreator1
         .cOption("UseAutosave") = bckUseAutosave
         .cOption("UseAutosaveDirectory") = bckUseAutosaveDirectory
         etc. 
       End With
    -------------------------------------------------------------

  15. #35
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut amélioration de la macro
    Bonjour,

    Je travaille toujours sur la macro présentée précédemment, j'avais encore parfois le pbl de génération de pdf qui ne se faisait parfois pas ou parfois avec des données en incohérence avec le nom du fichier (l'ordi prenait trop de tps à générer le doc PDF dont il avait noté le nom, mais mettait des informations d'un doc Word généré a posteriori).

    Bref pbl résolu comme suit :
    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
    With PDFCreator1
       .cOption("UseAutosave") = 1
       .cOption("UseAutosaveDirectory") = 1
       .cOption("AutosaveDirectory") = stChemin
       .cOption("AutosaveFilename") = DocName
       .cOption("AutosaveFormat") = 0                            ' 0 = PDF
       .cStart
       .cClearCache
        DoEvents
      ActiveDocument.PrintOut Background:=False
      DoEvents
     
     
      If .cProgramIsRunning Then
         PauseTime = 1    ' Définit la durée.
        Start = Timer    ' Définit l'heure de début.
        Do While Timer < Start + PauseTime
        Loop
        Finish = Timer    ' Définit l'heure de fin.
        TotalTime = Finish - Start
      End If
     
     
     
    End With
     
    PDFCreator1.cClearCache
    DoEvents
    J'espère que cela servira à ceux qui auront lu cette discussion...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2011, 00h22
  2. faire un publipostage en PDF avec nom d'enregistrement
    Par Bernard67 dans le forum VBA Word
    Réponses: 31
    Dernier message: 01/02/2008, 20h51
  3. Impression en boucle de doc.pdf en php
    Par Ashleycole dans le forum Langage
    Réponses: 1
    Dernier message: 20/07/2007, 13h45
  4. [FPDF] Publipostage de PDF avec PHP
    Par jcachico dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 08/05/2007, 20h44
  5. Utiliser pour publipostage sous pdf
    Par toppich88 dans le forum BIRT
    Réponses: 3
    Dernier message: 12/06/2006, 17h34

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