1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2007 Publipostage avec des noms répétés plusieurs fois dans 1 tableau Excel

Discussion dans 'Forum Excel' démarrée par Grimm_jow, 4 Décembre 2018.

  1. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonjour,

    J'ai un tableau Excel que je voudrais utiliser pour faire des convocations. Dans ce tableau, les personnes à convoquer apparaissent plusieurs fois car elles doivent être convoquées plusieurs à des dates et des lieu différents. Alors bien sûr je pourrais faire un courrier de convocation par date mais ça me ferait envoyer 4 courriers pour certaines personnes. Donc je voudrais savoir comment faire en transformant automatiquement mon tableau pour que ne faire qu'une convocation par personne.
    Je sais aussi que j'aurais pu construire mon tableau différemment dès le départ en indiquant comme entête de colonne date1, date 2 mais il aurait fallut mettre lieu 1, lieu 2, ... heure 1, heure 2 ... épreuve 1, épreuve 2 ... et c'est assez dur à gérer dans ce sens pour le construire.

    Pour la solution, s'il y en a, merci de ne pas me proposer de VBA, je ne le maîtrise absolument pas. Ou alors vraiment quelque chose de ultra simple et expliqué sur la mise en œuvre.

    S'il y a plusieurs formules et/ou plusieurs transformation, ça me va.

    Peut être aussi que la solution est dans les règles de publipostage de Word, mais je ne connais que "si alors, sinon..." qui ne suffira pas je pense.

    Si c'est impossible merci de me le dire.

    Je vous joins un extrait du fichier en question.

    Par souci de confidentialité j'ai remplacé les noms des personnes par des numéros. Ça va de 30 à 43, il y a donc 14 personne et j’aimais au final ne faire que 14 courriers en publipostage.

    Cordialement

    Julien
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Publipostage noms répétés Forum Date
    XL 2013 Automatisation publipostage avec word depuis excel Forum Excel 3 Décembre 2018
    Image dans etiquettes publipostage Forum Excel 14 Octobre 2018
    Word Publipostage à partir de données excel Autres applications 3 Août 2018
    automatiser le publipostage etiquettes Forum Excel 2 Juillet 2018
    XL 2016 Actualisation Format de Cellule - Forms vers du Publipostage Forum Excel 28 Juin 2018

  3. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Bonjour Julien, le forum

    Un publipostage (tableau excel / lettre word) est possible et la forme de votre tableau devrait le permettre sans trop de problème.

    Néanmoins, afin d'éviter les inutiles A/R ("c'est bien mais c'est pas comme ça que je voulais que ce soit présenté"), il serait important de joindre un modèle word "type" que vous souhaitez envoyer.
    Ca ne prend pas longtemps à faire, vous l'avez d'ailleurs peut-être déjà à disposition.

    @+
     
  4. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonjour

    Je n'avais pas vu votre réponse. Je n'ai pas été informé par email.

    Ma demande n'était pas de faire un simple publipostage en effet possible avec mon tableau mais de faire un publipostage reprenant dans un seul courrier TOUTES les lignes correspondant au même surveillant. Certains surveillants surveillent 3 épreuves, il faut alors que le courrier adressé à ces surveillants comportent 3 lignes correspondant à chacune des épreuves et indiquant les dates lieux et heures des épreuves.

    Ceci est impossible avec word excel de façon simple. Il faut soit passer par du vba. Soit passer par cette méthode que j'ai trouvée en cherchant un peu et qui me convient bien : http://www.faqword.com/index.php/wo...blipostage-conditionnel-maison#word-2007-2019

    Merci
     
  5. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Bonjour,

    Un essai uniquement fait sur excel avec :
    - un tableau de départ
    - une feuille modèle
    - la création des copies depuis "modèle"
    - un export xls pour chaque nom

    Ca prend quand même du temps à faire sous word pour créer les différents champs donc si vous ne fournissez pas le modèle attendu...

    xl-ment
     

    Pièces jointes:

  6. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Merci pour votre fichier.
    Je ne sais pas comment vous avez procédé. Je ne sais pas faire de publipostage dans Excel. Il faut dire que je n'ai jamais vraiment cherché. De plus la demande est de pouvoir le faire sous word à partir de la base de données excel et de voir s'il y a des fonctions permettant d'accéder à la demande.
    Voici le type de résultat attendu sous word. J'ai dû le mettre en pdf car le site n'accepte pas les fichiers word
     

    Pièces jointes:

  7. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Bonjour,

    Un zip contenant les informations.

    - base de données excel (recap) avec bouton "GO" pour mise en forme pour le publipostage (feuille publi)

    - lettre type word avec champs de publipostage
    Vous allez déziper et classer les fichiers dans un répertoire.
    Mais lors de la première ouverture de ce modèle type word, des messages d'erreurs vont apparaitre (messagebox) parce qu'il ne trouve pas la source de données.
    Mais au bout de 3 ou 4 message box il y en aura une qui vous demandera spécifiquement d'aller rechercher cette source.
    Vous n'aurez plus qu'à aller chercher le fichier excel et de choisir par la suite la feuille "publi$" comme étant la base de données.
    Le modèle est très proche du votre, vous pouvez bien sur l'adapter à votre convenance avec les différents champs.
    A noter que les champs du tableau vont jusqu'à 6 donc 6 références pour chaque nom pour le moment de classes à surveiller.

    - document final (ici 16 pages).

    Si vous souhaitez le faire sous word, vous devez connaitre les manipulations principales pour aller rechercher la base notamment.
    Et des tutoriels vidéos expliquent très bien comment on fait dans le cas contraire ou besoin de rafraichissement sur le sujet.

    Bonne finalisation

    @+
    zebanx
     

    Pièces jointes:

    Dernière édition: 15 Décembre 2018
  8. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonjour et merci pour votre envoie.

    Encore une fois je n'ai pas été prévenu par le site que j'avais une réponse et avec les fêtes je me suis un peu éloigné du sujet. Toutes mes excuses et meilleurs voeux.

    Donc j'ai testé votre envoie. Je vois que le bouton go a pour vocation de transformer le tableau. Cette transformation se fait via VBA et malheureusement je ne comprends pas ce langage.

    J'ai ensuite testé le publipostage avec word. Bien sûr j'ai dû aller chercher la base de donnée sur la feuille publi car le lien est différent entre chez vous et chez moi (oui je sais faire un publipostage sous word sans problème). Par contre je n'ai pas eu de résultat. J'ai afficher les champs avec alt+ f9 et tous les champs indiquent : "Erreur ! Signet non défini."
    Je n'ai pas su de quoi il s'agissait. Du coup j'ai simplement réinsérer les champs de fusions classiques à la place et en effet j'obtiens un tableau qui récapitule toutes les surveillances pour chaque personne. J'ai même ajouté une règle si alors sinon pour personnaliser "convié" en fonction du genre.

    Les + de votre méthode sont que l'on peut partir d'un tableau excel facile à traiter puis le transformer en un tableau utilisable pour le publipostage comme désiré. Sur Word on peut personnaliser les tailles des colonnes du tableau.
    Les - sont que le tableau word a 6 lignes qu'il y ait une seule surveillance ou 6 et l'utilisation du VBA sur Excel.

    Les + de la méthode que j'ai trouvée : permet de se passer du VBA avec une manip somme toute relativement simple. Le tableau word comporte exactement le nombre de lignes nécessaires pour chaque surveillant.
    Les - : Il faut à chaque fois créer un tableau secondaire avec juste les civilités, les noms et prénoms (c'est rapide à faire mais pas automatisé). Les largeurs du tableau word sont automatiques et non paramétrables, ce qui est un peut gênant car la colonne salle n'a pas besoin d'être aussi large que la colonne épreuve par exemple.

    Cordialement
     
    Dernière édition: 5 Janvier 2019
  9. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Bonjour @Grimm_jow

    Meilleurs voeux xl-iens également.
    Je pense qu'on pouvait actualiser les champs sans avoir besoin de tous les refaire en changeant la source de données.
    Dans le ruban "publipostage", choix de modifier la liste des destinataires et on peut aller chercher une source de données.

    Vous avez trouvé une solution qui vous convient, tant mieux. L'important reste d'être à l'aise avec l'utilisation d'un fichier.

    Je reste par contre sur l'idée qu'il vaut mieux travailler sur excel plutôt que word finalement.
    Pour construction :
    1- Un tableau de base avec tous les champs
    2- Une feuille modèle (telle que présentée sous word)
    3- Une macro pour lancer toutes les générations de feuille
    4- Une exportation des feuilles créés ce qui facilite leur transmission par la suite à chaque destinataire (le publipostage sous word conduisant à avoir un fichier contenant toutes les lettres, sauf erreur).

    Ce post m'a été utile pour cette position. Chacun est donc content de ses méthodes, c'est l'essentiel.

    Xl-ment
    zebanx
     
  10. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonjour,

    Cette fois-ci j'ai bien été informé de la réponse.

    Comme cette demande est pour quelqu'un qui maîtrise encore moins que moi le sujet, la demande est spécifiquement sur Word. Le publipostage sous word propose 3 options : l’envoie par mail (si ces dernier sont renseignés dans la base de données), l'impression directe ou, en effet, la création d'un fichier contenant tout ou partie des lettres générées. Il est possible de réaliser une ou plusieurs de ce actions pour le même documents de publipostage et de choisir les courriers que l'on voudra fusionner (pas forcément toute la liste).

    Pour ma curiosité personnelle, pourriez-vous m’expliciter vos différents points ou en valider ma compréhension svp ?
    1- Il s'agit de la base de donnée initiale de travail sous excel ?
    2- Le même modèle que sous word mais dans une feuille excel ?
    3- C'est la méthode proposée dans votre message du 14 décembre ? Si oui serait-il possible de m'expliquer les 2 macros (celle du 14 décembre et celle du 15) svp ?
    4- Exportation toujours dans le classeur Excel dans différentes feuilles ? En quoi est-ce plus facile pour la transmission (cf ma réponse sur les possibilités de word en génération de documents pour le publipostage ci-dessus) ?

    Je ne dis pas que je suis plus content de ma méthode que de la votre. J'ai fait l'inventaire des + et - de votre méthode du 15 décembre et de celle que j'ai trouvée à mettre en œuvre sous word. Les 2 ont leurs avantages et leurs inconvénients à mes yeux. La possibilité de proscrire certains inconvénients me plairait. Sur une méthode pour mon développement personnel, sur l'autre pour aider encore plus à la demande qui m'a été faite.

    Cordialement
     
  11. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Re-bonjour,

    1. Oui, enfin en ouvrant le fichier sous excel puis word, la base de donnée s'est correctement alimentée sous word pour le publipostage.
    edit : en changeant les informations, j'ai vu effectivement que la base ne s'est pas actualisée. Je suis donc reparti depuis "publipostage", puis "démarrer la fusion et le publipostage" et j'ai choisi "le pas à pas" pour pouvoir à nouveau réimporter la base.

    2. Dépend uniquement de ce que vous indiquez dans la feuille "modèle"

    3. Non, le fichier ne travaillait que sous word. Ci-joint la version excel.
    Il y a trois boutons
    3.1 pour supprimer les feuilles autres que la base, le modèle
    3.2 pour générer des feuilles à partir du modèle
    3.3 pour exporter ces feuilles suivant les différents noms, dans le même répertoire.

    4. Je ne sais pas si c'est plus facile effectivement si vous envoyer les informations directement par voie électronique depuis word. Je ne procède pas comme cela, mais ça pourrait être plus rapide.
    edit : après essai, c'est effectivement pas mal de procéder de la sorte. Présentation moyenne mais bonne efficacité pour les envoyer par outlook.

    @+
     

    Pièces jointes:

    Dernière édition: 8 Janvier 2019
  12. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Re-bonjour,

    Même pour un envoie par courrier papier ça reste très efficace sur word. On peut choisir quels courriers on souhaite imprimer et éventuellement enregistrer uniquement ces courrier là ou l'intégralité des courriers générables.

    J'ai bien compris l'action de chaque boutons mais pas comment ils sont fabriqués puisque je ne comprends toujours pas le VBA (cf ma requête dans le message précédent).

    Je remarque que le bouton export est assez peu utile par rapport à ce qu'on peut faire directement sous word. En effet le Export crée un nombre assez volumineux de fichiers et s'il y a plusieurs vagues de convocations pour par exemple un examen blanc puis le véritable examen, on risque de se retrouver avec des documents portant le même nom. Donc conflit. De plus il faut ouvrir les documents 1 par 1 pour les imprimer. Alors que sous word, Même si vous avez enregistré un fichier comportant tous les courriers vous pouvez encore choisir quelles pages vous souhaiter imprimer. Ou même en amont, si on dispose de différentes bases de données prêtes, on peut utiliser le modèle de publipostage pour ne générer que certains courriers et aussi reprendre le modèle pour une autre base et générer d'autres convocations.

    Je reste curieux de comprendre les programmations VBA. Et si je savais modifier la commande que j'utilise avec méthode pour personnaliser un peu plus le tableau qui se crée, elle serait top.
     
  13. zebanx

    zebanx XLDnaute Impliqué

    Inscrit depuis le :
    2 Août 2006
    Messages :
    949
    "J'aime" reçus :
    119
    Utilise:
    Excel 2007 (PC)
    Bonjour,

    Ok pour word, vous avez des arguments solides pour conserver l'usage de cette appli;)

    Ce serait trop long pour expliquer le langage VBA, néanmoins dans le fichier joint :
    - rajout de 5 colonnes qui peuvent être reprises sous word
    - ajout en VBE (ALT + F11) d'un code supplémentaire en VBA pour avoir un tableau de publipostage intégrant ces 5 nouvelles colonnes

    En gros, on change les bornes à différents endroits par rapport à la V0.
    (Donc si vous souhaitez encore rajouter des colonnes, il n'y aura qu'à modifier ces éléments).

    xl-ment
    zebanx

    Code (Visual Basic):
    Sub recap_publipostage()
    Set shr = Sheets("recap"): Set shp = Sheets("publi")
    derL2 = shr.Cells(Rows.Count, 1).End(3).Row: derL2R = shp.Cells(Rows.Count, 1).End(3).Row
    j = 13 '-- changement

    '--- clearcontents
    shp.Select
    Range(Cells(2, 1), Cells(derL2R + 1, 100)).ClearContents
    derL2R = shp.Cells(Rows.Count, 1).End(3).Row

    '--- copie des lignes
    shr.Select
    For i = 2 To derL2
    On Error GoTo prochain
            If Cells(i, 3).Value <> Cells(i - 1, 3).Value Then
            shr.Range(Cells(i, 1), Cells(i, 18)).Copy Destination:=shp.Cells(derL2R + 1, 1) '-- max : 18 colonnes
            Else
                If shp.Cells(derL2R + 1, 3) = shr.Cells(i, 3) Then
                j = j + 6
                shr.Range(Cells(i, 13), Cells(i, 18)).Copy Destination:=shp.Cells(derL2R + 1, j) '---colonnes M à R à reprendre si valeur retrouvée
                Else
                shr.Range(Cells(i, 1), Cells(i, 18)).Copy Destination:=shp.Cells(derL2R + 1, 1) '--- sinon copie de ligne complète (nouveau nom)
                End If
            End If
          If Cells(i, 3).Value <> Cells(i + 1, 3).Value Then derL2R = shp.Cells(Rows.Count, 1).End(3).Row: j = 13 '--- changement

    prochain:
    On Error GoTo -1
    Next i

    '---mise en forme
    shp.Select
    With [A1].CurrentRegion.Offset(1, 0)
            .Interior.Pattern = xlNone
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Orientation = 0
            .Borders.LineStyle = xlNone
    End With

    End Sub
     

    Pièces jointes:

  14. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonsoir

    Les arguments pour word sont pour moi (en tant que formateur bureautique) logiques. Word est à la base fait pour le travail et l'édition de texte. Il serait dommage qu'il soit moins efficace que Excel sur le sujet.

    Pour moi, l'intérêt d'excel est bel et bien le traitement de la base de données (ce qui ne comble pas toutes les lacunes de Word).

    Merci pour le code, mais ne le comprenant pas, c'est comme si vous m'aviez envoyé un message en mandarin.

    En tous cas merci pour le suivi du sujet
     
  15. BrunoM45

    BrunoM45 XLDnaute Barbatruc

    Inscrit depuis le :
    22 Avril 2005
    Messages :
    8852
    "J'aime" reçus :
    335
    Sexe :
    Masculin
    Travail/Loisirs :
    Responsable informatique et développeur
    Habite à:
    MONTARGIS (la Venise du Gâtinais)
    Page d'accueil :
    Utilise:
    Excel 2016 (PC)
    Bonjour Julien alias Grimm_jow

    Tu verras le VBA n'est pas si compliqué ;)
    Voici ton fichier avec le code et les commentaires pour le comprendre (du moins j'espère)

    Ensuite pour ton publipostage tu as juste à faire appel à la feuille "ListePubli"

    A+
     

    Pièces jointes:

  16. Grimm_jow

    Grimm_jow XLDnaute Nouveau

    Inscrit depuis le :
    27 Novembre 2012
    Messages :
    12
    "J'aime" reçus :
    0
    Utilise:
    Excel 2007 (PC)
    Bonjour et encore désolé pour le délai de réponse. Le site ne me prévient pas systématiquement.
    Merci pour les explications. Il y a des choses que j'arrive à comprendre quand c'est très détaillé. Quand les remarques sont plus d'ordre général, je comprends l'idée énoncée mais pas les commandes. En effet pour comprendre vraiment il faut savoir a quoi correspond chaque commande et je n'en connais aucune. Il y en a quelques unes dont j'ai plus ou moins deviné l'action et le fonctionnement mais ça reste obscur pour les néophytes.
    Pour mieux te faire comprendre c'est comme si tu ne parlais pas du tout anglais et que je te disais que "My friends are coming home tonignht for a party with a lot of boose and food" ça voulait dire que mes amis viennent chez mois pour une soirée avec beaucoup d'alcool et de nourriture. Tu auras l'idée. Peut être même que tu arriveras a identifier quelques mots, mais au final tu seras toujours incapable de comprendre la phrase et de la refaire ou d'utiliser les mots dans une autre phrase.
    Mais merci pour la tentative c'est gentil. Je pense qu'il faut que je me plonge dans un tuto de VBA pour comprendre.
    Merci encore
     

Partager cette page