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

Word Discussion :

Publipostage ou VBA pour generation de doc word avec champs variables


Sujet :

Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Publipostage ou VBA pour generation de doc word avec champs variables
    Bonjour,

    J'annonce de suite, le monde du VBA n'est pas le miens, je cherche pour le moment des pistes pour réaliser ce que je souhaite, et creuserai plus en détail une fois éguillé!

    J'ai donc d'un côté un modèle Word (page de garde et deux autres pages, avec des champs variable (type "Client" "Auteur" "Projet" "Nom du document").
    J'ai d'un autre côté un fichier Excel avec des colonnes correspondant à mes (futurs) champs variables de mon modèle Word.

    Le but, évidemment, c'est de créer autant de fichier word qu'il y a de lignes (~200) dans mon fichier Excel, et bien sûr d'affecter mes variables à ces documents Word (avec les champs toujours liés si jamais je dois effectuer des modifications plus tard).
    Le nom de chaque document word sera tiré d'une cellule de la ligne en cours.

    Cela est-il expliqué clairement ?
    Cela est-il réalisable ? j'ai l'impression de ne pas demander quelque chose d'incroyable, connaissant la puissance de Word/Excel...

    J'ai l'impression que le publipostage ne me permettra pas de jour sur les champs variables de Word, c'est pourquoi je pense au VBA...

    Merci de vos idées!

    Thomas

  2. #2
    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,

    Il faut passer par du VBA.
    Avec un publipostage, on peut séparer les documents obtenus, mais il n'est plus possible de récupérer les données pour donner un nom précis.

    http://heureuxoli.developpez.com/off.../publipostage/

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    J'ai réussis à faire ce que je voulais... je le pose donc içi si ça peut aider quelqu'un un jour... et si jamais quelqu'un trouve que j'aurai pu optimiser le truc...


    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
     
    Sub publish()
        Dim WordApp As Word.Application
        Dim WordDoc As Word.Document
    Dim NomSite As String
    Dim NomType As String
    Dim NomTechno As String
    Dim NomDoc As String
    Dim Nbdoc As Variant
    Dim start As Variant
    Dim VarClient As String
    Dim VarProjet As String
    Dim VarTitle As String
    Dim VarArchi As String
    Dim VarIC As String
    Dim VarVersion As String
    VarClient = "XXXX"
    VarIC = "XXXXXX"
    VarVersion = "0.1"
     
        'ouvre session word
        Set WordApp = New Word.Application
        'ouvre du document Word
        Set WordDoc = WordApp.Documents.Open("C:\Users\xx\Desktop\macro\XXXX.docx")
        'word est masqué pendant l'opération
        WordApp.Visible = False
     
    start = 2
    Nbdoc = Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
    While start <= Nbdoc
    NomSite = Cells(start, 2)
    NomType = Cells(start, 4)
    NomTechno = Cells(start, 1)
    NomDoc = Cells(start, 7)
    VarProjet = Cells(start, 13)
    VarTitle = Cells(start, 14)
    VarArchi = Cells(start, 15)
     
    With WordDoc
        .CustomDocumentProperties("Client").Value = VarClient
        .CustomDocumentProperties("Projet").Value = VarProjet
        .CustomDocumentProperties("Commercial").Value = VarIC
        .CustomDocumentProperties("Version").Value = VarVersion
        .BuiltinDocumentProperties(wdPropertyTitle).Value = VarTitle
        .BuiltinDocumentProperties(wdPropertyAuthor).Value = VarArchi
        .SaveAs2 Filename:=("C:\Users\xxx\Desktop\macro\" & NomSite & "\" & NomType & "\" & NomTechno & "\" & NomDoc & ".docx"), _
        FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
    End With
    start = start + 1
    Wend
    WordApp.Quit
    End Sub

  4. #4
    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,

    La method avec un publipostage était décrite dans mon lien.
    il suffisait juste de choisir le champ pour le nom.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut PB décalage de lignes dans un même champ
    Bonjour à toutes et à tous,

    j'utilise depuis peu la macro d'Olivier Lebeau concernant la séparation de documents publipostés (http://heureuxoli.developpez.com/off.../publipostage/). Cette dernière fonctionne très bien, mais je rencontre un pb de taille :
    les documents scindés par la macro font 8 pages chacun. Les champs du publipostage interviennent sur la première page, et un des champ (qui contient un numéro) et réutilisé en en-tête sur les autres pages du document. Or, pour ce champ qui est donc utilisé 2 fois, il y a un décalage. Le numéro 1001 devient 1002, le 526 devient 527 etc... ce qui rend mon document inutilisable.
    J'ai réussi à bricoler une solution grâce à la fonction "décaler" directement dans la base de donnée mais j'aurai aimé quelque chose de plus "propre", est-ce possible ? est-ce moi qui ai zappé quelque chose ?

    D'avance merci pour vos retour,

    Richard

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

Discussions similaires

  1. Doc word avec plusieurs liens publipostage excel
    Par capfp dans le forum Conception
    Réponses: 3
    Dernier message: 13/06/2013, 09h04
  2. [WD-2007] irpnPython/VBA - Comment connaitre le doc. Word dèjà lancé ?
    Par pibol dans le forum VBA Word
    Réponses: 3
    Dernier message: 15/12/2012, 23h56
  3. [XL-2007] Utiliser les données d'Excel pour obtenir un doc word
    Par Raphael39 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/12/2010, 10h55
  4. [VBA-E] manipuler un doc Word
    Par pikapikapoil dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2007, 22h41
  5. [VBA-E] Macro VBA pour personaliser mon .doc depuis mon .xls
    Par korntex5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2006, 16h01

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