Générer des courriers types word à partir d'excel

loulouange

XLDnaute Occasionnel
Bonsoir,

Je me permets de faire appel à vos compétences en Excel afin de savoir s'il est possible de créer dans un tableau excel comprenant une liste de personnes avec coordonnées, un bouton ou autre permettant d'ouvrir un document spécifique dans Word reprenant des éléments dans le tableau excel.

Etant donné que se sont des lettres personnalisées, il n'y pas de possibilité de faire un publipostage.

Jusqu'ici je n'ai pu qu'améliorer les lettres types en appliquant des champs, (je n'y connaissais rien avant).

Je sais qu'Excel propose de grandes possibilités mais je crains que ce que je demande nécessite une très bonne maîtrise d'Excel.

Ceci dit, si vous pensez que ma demande est réalisable, et s'il existe un tuto pas à pas ou si vous pouviez m'expliquer au moins pour un exemple, je pourrais tenter de comprendre le fonctionnement des macros.

Pour vous permettre de mieux cerner ma demande, je vous mets en pièce jointe un tableau et deux exemples de lettres types, une pour absence injustifiée (AI) et l'autre pour absence justifiée (AJ).

Le tableau est exhaustif, d'autres lettres types et documents existent, le but étant de pouvoir en cliquant sur un bouton (dans chaque colonne sur chaque ligne ??) de générer le document et de reprendre l'adresse du destinataire.

Je vous remercie par avance pour vos suggestions et conseils qui me seront bien précieux.
 

Pièces jointes

  • données sources.xls
    29.5 KB · Affichages: 246
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 178
  • Convov2 suite à AJ avec rdv ateliers.docx
    152 KB · Affichages: 224
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 179
  • Convov2 suite à AJ avec rdv ateliers.docx
    152 KB · Affichages: 225
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 171
  • Convov2 suite à AJ avec rdv ateliers.docx
    152 KB · Affichages: 230

Yaloo

XLDnaute Barbatruc
Re : Générer des courriers types word à partir d'excel

Bonjour loulouange,

Vite fait car je pars au boulot, [C65536] est important surtout pour le tri.

Voici ton fichier modifié, il y a une nouvelle condition
If Cells(i, 1) <> "" Then
au cas la ligne du conseiller serait vide. C'est pour ça que tu avais ton message d'erreur.

A+

Martial
 

Pièces jointes

  • données sources.xlsm
    40.9 KB · Affichages: 61
  • données sources.xlsm
    40.9 KB · Affichages: 60
  • données sources.xlsm
    40.9 KB · Affichages: 64

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Ah ok j'avais pas compris que tu parlais du tri

Je suis allée voir tes modifications et je pense que ça y est tout est clair maintenant !!

Encore merci à toi pour ton excellent travail et surtout pour ta patience.

Je vais essayer de voir si je peux replacer le code du bouton en reprenant ton fichier d'origine que tu m'avais envoyé. Je vais tenter de le personnaliser.

Plutôt que de venir encore te déranger, j'aimerais bien essayer de trouver par moi-même, aurais tu un lien avec un tuto expliquant la mise en forme d'un bouton ?

En attendant ta réponse, je te souhaite une bonne soirée.
 

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Bonjour Martial,

Pour le bouton je parlais de la mise en forme des différents champs du bouton.

J'ai retrouvé un fichier sur lequel j'avais tenté de modifier l'apparence :

j'ai rajouté "avec ateliers" sur les boutons AI et AJ et du coup il fallait agrandir les cellules mais je n'ai pas bien compris comment i fallait faire donc ce n'est pas très réussi.

Sinon ensuite j'ai trouvé dans le code de l'useform le changement à faire suite à cette modification.

A ce propos, j'avais posé une question l'autre jour car je ne retrouvais plus le code mais c'est bon j'ai su comment y parvenir.

Enfin voila, à présent ma recherche porte sur l'élaboration du menu du bouton, je te mets un petit fichier pour te donner une idée du résultat que j'aimerais. C'est en fait au niveau de la mise en page que je me perds, bordure cadre, taille....

Donc si tu as une base sur laquelle je puisse m'appuyer ça me serait très utile.

A bientot et bonne journée.
 

Pièces jointes

  • données sources.xlsm
    23.7 KB · Affichages: 52
  • données sources.xlsm
    23.7 KB · Affichages: 56
  • apparence contenu bouton.xlsx
    12.3 KB · Affichages: 49
  • données sources.xlsm
    23.7 KB · Affichages: 49

Yaloo

XLDnaute Barbatruc
Re : Générer des courriers types word à partir d'excel

Re,

Désolé j'ai un doute sur ma compréhension :
- Tu veux créer un UserForm de menu avec des boutons
ou
- Tu veux créer une feuille de menu avec des boutons

A te relire

Martial
 

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

alors je ne saurais faire la différence entre les deux, mais dans le fichier que tu m'avais proposé avec le bouton "Go...." ou tu as déja fait des champs AI et AJ permettant de générer les lettres.

J'aimerais garder ce système, mais seulement rajouter d'autres champs pour pouvoir générer d'autres documents.

Enfin si cela ne demande pas trop de paramétrage bien sur.
 

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Bonsoir Martial,

Désolée de n’être pas venue plus tôt pour te remercier pour ta proposition de formulaire.

Dans le premier fichier que tu m'avais proposée au tout début de mon post, tu avais fait un bouton GO, je te mets ci dessous les captures d'écran :



Comme tu peux le voir en cliquant sur GO j'arrive sur un menu avec les différents choix de lettres et au dessus la base de données des bénéficiaires.

D'après tes 4 propositions, l'idéal serait la dernière mais mon choix se portera sur la méthode la moins compliquée à réaliser.

Par contre je n'ai pas vu la différence entre :

- 2ème cas : lorsque tu cliques sur un bouton (1ère méthode)

et

- 3ème cas : lorsque tu cliques sur un bouton (2ème méthode)

Enfin voila je voulais qu'en cliquant sur un bouton, avec la méthode useform ou non, on puisse choisir la lettre et le destinataire pour pouvoir fusionner les deux.

Désolée si je ne suis pas assez claire dans mes explications, je ne voudrais pas abuser de ton temps car je sais ce que ça représente comme travail et j'apprécie beaucoup ton aide.

C'est un projet que j'aimerais bien pouvoir faire "seule" avec de l'aide pour débuter, mais si c'est trop complexe alors ce n'est pas bien grave je ferais autrement. Je ne veux pas que l'on fasse tout le travail à ma place.

A bientot par ici.

Bonne soirée.
 

Pièces jointes

  • contenu bouton clic GO.jpg
    contenu bouton clic GO.jpg
    98.7 KB · Affichages: 106
  • données sources (2).xlsm
    30.4 KB · Affichages: 54
  • Fichier données avec bouton GO.jpg
    Fichier données avec bouton GO.jpg
    122.6 KB · Affichages: 88

Yaloo

XLDnaute Barbatruc
Re : Générer des courriers types word à partir d'excel

Bonsoir loulouange,

Entre le 2 et le 3 il n'y a pas beaucoup de différence si ce n'est que le 3 utilise des boutons ActiveX ce sont les mêmes que dans les UserForm's.

Il n'y a pas de problème pour utiliser l'UserForm, il serait bien que tu remettes le dernier fichier avec lequel tu travailles, et bien m'expliquer ce que tu souhaites.

A te relire

Martial
 

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Bonsoir Martial, Bonsoir le forum,

Je prends enfin le temps de répondre.

J'ai retravaillé mon fichier avec les différentes versions en essayant de récupérer des données ici et là, cela n'a pas été simple mais j'ai réussi à remettre en place les formules enfin j'y suis presque arrivée :eek:)

En fait j'ai revu mon tableau et modifié les colonnes que je souhaite reporter dans les autres feuilles, seulement cela concerne des colonnes discontinues, j'ai cherché longtemps sur le net les sujets pouvant correspondre au mieux mais sans succès.

J'ai tenté différentes formules mais à chaque fois j'ai une erreur.

Je voulais changer cette ligne qui se trouve en bas du code :

Range(Cells(i, 2), Cells(i, 4)).Copy Sheets(CT).Cells(Sheets(CT).[B65536].End(xlUp)(2).Row, 1)


Là je voudrais que les colonnes de B à D soient recopiées, jusqu'ici pas de soucis mais je souhaiterais également que les colonnes I, K et Y le soient aussi.

pour le code ça correspond à (i,9), (i,11) et (i,25); Seulement là dans les autres feuilles ça correspond à D, H et J. Et là je bloque.

Je te remets ici le tableau avec les lettres types, ici il y en deux.
J'ai pu remettre le code de l'useform pour que le bouton "GO" fonctionne à nouveau.

J'aimerais donc revoir aussi avec toi ces histoires de fusion mais je préfère reprendre ça au fur et à mesure pour ne pas s'éparpiller.


Bon j'ai voulu vérifier à nouveau mes fichiers avant de les mettre sur le post et là rebelotte : la copie des lignes par conseiller ne se fait plus donc je recommence la manipulation '(je galère encore....) et enfin ça fonctionne. Mais voila la génération des lettres de fonctionne plus grrrrr, je desespère....

Donc voila, après plusieurs tentatives infructueuses, je me permets de te mettre les documents tels quels en espérant que tu puissent m'expliquer où j'ai commis des erreurs.

Dans l'attente de te lire.


Bon week end.


Loulou
 

Pièces jointes

  • Convov2 suite à AJ avec rdv ateliers.docx
    152.9 KB · Affichages: 51
  • données sources essai.xlsm
    55 KB · Affichages: 52
  • Convov2 suite à AI avec rdv ateliers.docx
    153.6 KB · Affichages: 57
  • Convov2 suite à AJ avec rdv ateliers.docx
    152.9 KB · Affichages: 48
  • données sources essai.xlsm
    55 KB · Affichages: 52
  • Convov2 suite à AI avec rdv ateliers.docx
    153.6 KB · Affichages: 56
  • Convov2 suite à AJ avec rdv ateliers.docx
    152.9 KB · Affichages: 50
  • données sources essai.xlsm
    55 KB · Affichages: 51
  • Convov2 suite à AI avec rdv ateliers.docx
    153.6 KB · Affichages: 53
Dernière édition:

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Désolée je me suis rendue compte d'oubli dans le tableau mais je ne pense pas que cela soit la cause des erreurs.

je remets le tableau ci-joint.
 

Pièces jointes

  • données sources essai.xlsm
    55 KB · Affichages: 56
  • données sources essai.xlsm
    55 KB · Affichages: 56
  • données sources essai.xlsm
    55 KB · Affichages: 53

Yaloo

XLDnaute Barbatruc
Re : Générer des courriers types word à partir d'excel

Bonjour loulou,

Voici ton fichier, bon ben, c'est pas mal ce que tu avais fait. Il y avais qq erreurs mais tu t'en est pas mal sortie.

J'ai rajouté les 3 lignes de code que tu souhaitais pour les colonnes I, K et Y.

Tu avais changé le nom des signets, en remplaçant Signet par Atelier, de ce cas-là il faut aussi changer dans la macro. Il y a qq erreurs de positionnement de signets dans les fichiers Word (à toi de voir).

Je pense (mais n'en suis pas sûr, à cause des modifications de signet) qu'il faut rajouter 1 ou 2 colonnes dans la ListBox, j'en ai ajouté 2, et redéfinit la plage de données (mais la encore je ne suis pas sûr d'avoir bien fait, à toi de me dire).

A te relire

Martial

PS : En ajoutant une feuille à la fin du classeur, il fallait modifier les macros d'envoi de données et de tri.
 

Pièces jointes

  • données sources essai (1).xlsm
    57.7 KB · Affichages: 58
  • données sources essai (1).xlsm
    57.7 KB · Affichages: 52
  • données sources essai (1).xlsm
    57.7 KB · Affichages: 62

loulouange

XLDnaute Occasionnel
Re : Générer des courriers types word à partir d'excel

Bonjour Martial,

Sincèrement désolée pour toutes ces erreurs, j'ai regardé en détail et comparé mon tableau avec le tien et je me suis rendue compte que j'avais fait quelques boulettes :(

En tout cas cela m'a permis de comprendre beaucoup de choses grâce à toi et je t'en remercie. Comme j'avais oublié d'enlever des colonnes dans la feuille CB du coup ça faussait tout dans EL et EM. Mais j'ai réussi à appliquer ta formule pour remettre les données dans les bonnes colonnes.

Pour les signets, là aussi c'est encore ma faute, je sais pas pourquoi j'ai remplacé par "atelier" d'autant plus que cela m'effaçait le contenu des mes listes déroulantes, donc j'ai remis "Signet" et là tout est bien en place, enfin presque j'ai toujours ce problème de mettre la civilité en début de la lettre et dans la formule de politesse. J'ai fait insertion renvoi "signet1" aux endroits souhaités mais ça ne marche pas. Et du coup je ne peux plus faire les accords en genre.

Sinon je viens de me rendre compte dans le tableau lorsque je rajoute un nouveau stagiaire, ce dernier se place automatiquement par ordre alphabétique, mais si il vient se positionner en dessous d'une ligne où j'ai appliqué une couleur différente de la ligne selon choix "Phase accueil" ou "Sortie" , celui ci prend le même format.

J'avais une question à te poser sur cette ligne car je n'arrive pas à comprendre :

Sheets(i).Range("A3:H" & DerL).ClearContents

Pourquoi ne mets on pas "B3:H" puisque l'on reprend à partir de la colonne civiliité ?

J'ai d'ailleurs fait un test en mettant B3 et je n'ai pas vu de changement ?


Pour la listbox : tu parles du tableau qui l'on voit lorsqu'on appuie sur le bouton GO (useform) ? si c'est le cas le plus important est de repérer le nom prénom éventuellement adresse, j'ai d'ailleurs enlevé la colonne numéro de tel.
Donc pour ta question de savoir s'il fallait rajouter une colonne ou deux je ne sais pas dans ce cas l'intérêt ?

Je te remets les fichiers que j'ai mis à jour en espérant que tu puisses mieux cerner mes soucis.

A bientot pour te lire.

Loulou
 

Pièces jointes

  • données sources - 16-08.zip
    336.5 KB · Affichages: 52
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Générer des courriers types word à partir d'excel

Bonjour Loulou,

Sincèrement désolée pour toutes ces erreurs, j'ai regardé en détail et comparé mon tableau avec le tien et je me suis rendue compte que j'avais fait quelques boulettes :(

Ne dit-on pas : Faute avouée est à moitié pardonnée ;)

... enfin presque j'ai toujours ce problème de mettre la civilité en début de la lettre et dans la formule de politesse. J'ai fait insertion renvoi "signet1" aux endroits souhaités mais ça ne marche pas. Et du coup je ne peux plus faire les accords en genre.

Pour ça je pense qu'il faut le traiter à part (je veux dire en dehors de la boucle), vois le fichier si ça te convient.

Sinon je viens de me rendre compte dans le tableau lorsque je rajoute un nouveau stagiaire, ce dernier se place automatiquement par ordre alphabétique, mais si il vient se positionner en dessous d'une ligne où j'ai appliqué une couleur différente de la ligne selon choix "Phase accueil" ou "Sortie" , celui ci prend le même format.

Oui, car tu as rajouté des colonnes et le tri n'allait pas jusqu'à la colonne Z, mais s'arrêtait à la colonne X, ne prenant pas en compte la colonne "Stade acpgt", c'est réparé dans le fichier ci-dessous.

Sheets(i).Range("A3:H" & DerL).ClearContents
Pourquoi ne mets on pas "B3:H" puisque l'on reprend à partir de la colonne civilité ?
J'ai d'ailleurs fait un test en mettant B3 et je n'ai pas vu de changement ?

Le Sheets(i) reprend le N° de chaque feuille de 2 jusqu'à l'avant-denière feuille. Comme tu n'as pas de civilité dans les feuilles CB EL et AM, il faut effacer de la colonne A jusqu'à la colonne H.

Pour la listbox : tu parles du tableau qui l'on voit lorsqu'on appuie sur le bouton GO (useform) ? si c'est le cas le plus important est de repérer le nom prénom éventuellement adresse, j'ai d'ailleurs enlevé la colonne numéro de tel.
Donc pour ta question de savoir s'il fallait rajouter une colonne ou deux je ne sais pas dans ce cas l'intérêt ?

Ok, on ne rajoute pas, on peut même cacher la colonne de la civilité.

A te relire

Martial

PS : je te remets les 3 fichiers, car j'ai rajouté le signet8 dans les fichiers Word.
 

Pièces jointes

  • Loulou.zip
    310.7 KB · Affichages: 78
  • Loulou.zip
    310.7 KB · Affichages: 76
  • Loulou.zip
    310.7 KB · Affichages: 76

Discussions similaires

Réponses
15
Affichages
665
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon