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 annuaire dans un document avec texte fixe avant et après


Sujet :

Word

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut Publipostage annuaire dans un document avec texte fixe avant et après
    Bonjour

    Je souhaite créer un publipostage en mode annuaire.
    Cela fonctionne bien : le publipostage génère un document avec tous mes enregistrements qui se suivent les un à la suite des autres.

    Cependant, j'aimerai avoir un texte avant l'enregistrement n° 1 et après le dernier enregistrement et que ni l'un ni l'autre ne se répètent.

    Y a t'il une solution ?

    Merci d'avance de l'intérêt porté à cette question...

  2. #2
    Membre actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    décembre 2021
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2021
    Messages : 203
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par marie75019 Voir le message
    Bonjour,

    Si vos champs vous le permettent, j'essaierais (sans garantie) de créer deux enregistrements dans votre table de telle manière qu'ils se retrouvent en début et en fin de votre liste filtrée (ou non) et en utilisant un des champs pour y mettre le texte.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    C'est en effet une option. Mais elle ne me semble pas très propre surtout que mes données proviennent d'Access (origine requête).

  4. #4
    Membre actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    décembre 2021
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2021
    Messages : 203
    Points : 292
    Points
    292
    Par défaut
    [QUOTE=marie75019;11940024]
    /QUOTE]

    Si cela vous est permis, vous auriez la possibilité d'ajouter ces textes par un code VBA.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    Vous auriez une piste un peu plus préciser ?

    Dans Access, j'utilise une fonction décrite dans https://claudeleloup.developpez.com/...cuments-types/
    Les données de mon publipostage sont donc dans une table...
    Mon fichier word est lié à cette table.

  6. #6
    Membre actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    décembre 2021
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2021
    Messages : 203
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par marie75019 Voir le message
    Une solution en VBA Word (code associé à votre Normal.dotm) vous permettrait d'insérer du texte dans la partie En-tête (pour ne pas détruire votre mise en page à condition que le texte ne soit pas trop long) et en ajoutant un paragraphe à la fin du document. Si le texte à mettre en premier modifie la mise en page, il vaut mieux insérer un paragraphe en début du document et créer directement un saut de page.

    Si vous n'êtes pas familiarisée avec le VBA Word, regardez le tuto d'Olivier LEBEAU https://heureuxoli.developpez.com/office/word/vba-word/.
    Si votre outil doit être diffusé à différents utilisateurs, la modification de leur Normal.dotm me paraît toutefois hasardeuse. Il vaudrait mieux dans ce cas, mettre la macro dans un fichier docm qui permettrait de pointer sur le fichier à modifier.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    J'ai trouvé la moitié de la solution.

    Pour le début de l'annuaire, je crée une condition Si Alors Sinon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {IF { MERGEREC } = 1 " Texte avant l'annuaire + Champs de l'annuaire" "Champs de l'annuaire" }
    Pour la fin, on pourrait faire la même chose, s'il était possible de connaître le nombre d'enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {IF { MERGEREC } = 1 " Texte avant l'annuaire + Champs de l'annuaire" "{IF { MERGEREC } = [dernier n°] " Champs de l'annuaire + Texte après l'annuaire " " Champs de l'annuaire " }" }
    Y t'il une solution pour avoir IF { MERGEREC } = [dernier n°] ?

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    La solution la plus simple est visiblement d'ajouter une ligne supplémentaire avec un champ identifiable pour faire un if dans le publipostage.
    Il n'existe pas dans les fonctions word de publipostage un champ permettant de renvoyer le nombre d'enregistrement du publipostage.
    Mais si quelqu'un me trouve cela, je reste encore preneur.

    Merci pour les échanges.

  9. #9
    Membre actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    décembre 2021
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2021
    Messages : 203
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par marie75019 Voir le message
    Bonjour,

    VBA vous est permis ?

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2023
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2023
    Messages : 35
    Points : 32
    Points
    32
    Par défaut
    Oui
    Mais si je comprend l'utilisation de VBA dans access, je n'y connais strictement rien dans Word.

  11. #11
    Membre actif
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    décembre 2021
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2021
    Messages : 203
    Points : 292
    Points
    292
    Par défaut
    Citation Envoyé par marie75019 Voir le message
    .
    Le code ci-dessous est dans Excel. La commande GetObject permet d'atteindre la session Word en cours. Selection représente le fichier Word actif (le fichier de publipostage). Le code insert le texte en fin de document.

    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
    Sub ColleUnTexteDansDocWord()
     
    Dim Wdapp As Object
     
        Set Wdapp = GetObject(, "Word.Application")
        With Wdapp.Selection
                 .EndKey unit:=wdStory, Extend:=wdMove
                 .Paragraphs.Add
                 .EndKey unit:=wdStory, Extend:=wdMove
                 .Range = "Mon texte"   ' A adapter
        End With
        Set Wdapp = Nothing
     
     
    End Sub
    Ce code doit être transposable dans Access, mais je n'ai pas essayé.

    En paramètre, c'est sans doute mieux :

    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
    Sub TestColleUnTexteDansDocWord2()
     
        ColleUnTexteDansDocWord2 "Mon texte" ' A adapter
     
    End Sub
     
    Sub ColleUnTexteDansDocWord2(ByVal MonTexte As String)
     
    Dim Wdapp As Object
     
        Set Wdapp = GetObject(, "Word.Application")
        With Wdapp.Selection
                 .EndKey unit:=wdStory, Extend:=wdMove
                 .Paragraphs.Add
                 .EndKey unit:=wdStory, Extend:=wdMove
                 .Range = MonTexte
        End With
        Set Wdapp = Nothing
     
     
    End Sub

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/06/2013, 08h26
  2. Réponses: 2
    Dernier message: 19/11/2007, 16h53
  3. bmp non visible dans un bouton avec texte
    Par CAMIC dans le forum Windows
    Réponses: 8
    Dernier message: 27/03/2007, 10h24

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