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 à AJ avec rdv ateliers.docx
    152 KB · Affichages: 230
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 171
  • Convov2 suite à AJ avec rdv ateliers.docx
    152 KB · Affichages: 225
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 179
  • Convov2 suite à AJ avec rdv ateliers.docx
    152 KB · Affichages: 224
  • Convov2 suite à AI avec rdv ateliers.docx
    154.9 KB · Affichages: 178

loulouange

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

oups désolée, effectivement j'aurais du le voir .

Je viens de l'essayer, plus de message d'erreur mais si mes deux colonnes sont vides il me marque -1
et sur une autre ligne il y a "1" dans les deux colonnes et il me calcule "1" au lieu de "2".
 

Yaloo

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

Et oui, quand on a le nez dans le guidon on ne vois pas ce qu'il y a autour :eek:

Si tu as des cellules vides il faut mettre une condition, du style If Cells(i,10) <> "" and Cells(i,12) <> "" then ...

A vérifier, mais ça doit être bon ...

A+
 

loulouange

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

alors le revoici après avoir chercher et chercher, c'était tout bete mais bon j'ai compris enfin crois.

en fait c'est parce que j'avais mis en fin de ligne "-1" pfffff moi alors, j'ai donc mis "0"

Code:
Cells(i, 22) = Application.WorksheetFunction.Sum(Cells(i, 10) + Cells(i, 12) + Cells(i, 14) + Cells(i, 16) + Cells(i, 18), 0)

mille excuses pour t'avoir donner du travail en plus.

merci encore pour tout

A+

loulou
 

loulouange

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

Bonjour Martial,

Je ne sais pas si tu as continué à chercher pour l'histoire de l'âge, mais je voulais juste te dire que j'avais trouvé la formule.

Je la mets ci-dessous pour ceux que ça intéresse :

Code:
Cells(i, 11) = Val(Format(Now - Cells(i, 10), "yy"))

A+

Loulou
 

loulouange

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

Bonjour Martial, le forum,

Me revoila encore avec mon fichier que j'utilise quotidiennement et qui fonctionne parfaitement si ce n'est deux petites choses que j'aurais bien voulu améliorer si c'était possible.

La première question est de savoir comment alléger mon fichier, en effet il pèse quand même 1,55 mo.
J'ai trouvé sur ce forum et autres sites des infos parlant justement de ce problème de poids, j'ai donc suivi les conseils qui sont dans un premier temps d'éliminer toutes les cellules qui étaient fusionnées et d'opter pour le "centrage sur plusieurs colonnes".
Cette étape réalisée, le fichier fait toujours le même poids
Ensuite j'ai trouvé un petit programme qui permet de "dégraisser", mais je n'ai vu aucun changement, peut être n'est il pas utilisable avec des fichiers avec vba ?

J'aurais bien joint mon fichier sur le forum mais hélais trop volumineux.

Ma deuxième question porte sur l'activation des feuilles :
Lorsque j'applique un filtre sur une feuille , par exemple je suis sur la feuille "co/bco" je veux sélectionner uniquement les personnes qui sont sorties, lorsque je veux aller voir une info sur une autre feuille et que je reviens sur la "co/bco", au moment du rafraîchissement, les lignes s'affolent, cela un dure quelques secondes et une fois terminé je me retrouve avec des lignes vides, pas mal ont sauté, donc je suis obligée d'enlever le filtre de rafraîchir à nouveau pour avoir de nouveaux toutes mes lignes et ensuite je dois refaire le filtre.
Du coup, j'essaye de penser à 'enlever le filtre avant d'aller sur une autre feuille et le remet ensuite, je dois le faire à chaque fois (quand j'y pense) surtout que bien souvent j'applique plusieurs filtres à la fois. Donc je me demandais s'il y avait un moyen d'éviter ce "bug" ?

A te relire

Loulou
 

Yaloo

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

Bonjour Loulou,

Le premier point est un problème assez récurrent mais sans voir le fichier difficile de trouver une solution fiable.
Pour le second point, peut-être avec une sauvegarde des filtres à la désactivation de la feuille puis réactivation de la feuille ? Je ne sais pas si c'est faisable.

A+

Martial
 

loulouange

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

re Martial, merci pour ta rapide réponse.

j'ai hébergé mon fichier sur un site , tu pourras le télécharger à l'adresse ci-dessous :

Suivi ateliers - Martial.xlsm - Fichier XLS

J'ai testé en supprimant certains onglets, j'ai bien l'impression que celui qui représente le plus en taille est l'onglet "Prés. ateliers".

Pour l'histoire des filtres, ça me parait bien compliqué non, surtout que les filtres sont différents d'un onglet à l'autre.

Par contre, peut etre mettre un code dans le cas où j'oublierais d'enlever les filtres Ainsi lorsque je réactive la feuille la macro supprimerait automatiquement les filtres, j'ai vu cette ligne, mais je ne sais pas trop si ça correspond et ou la mettre :

Code:
ActiveSheet.ShowAllData 'libère filtre

A bientot.

Loulou
 

Yaloo

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

Bonjour Loulou, le forum,

Pour le poids de ton fichier, c'est difficile de réduire car tu as pas mal de feuille, de données, de MFC etc... je suis arrivé à 1,33 mo
Je ne suis pas sûr que cela te convienne :p
Vois le fichier ici

Pour désactiver les filtres, regarde du coté de ThisWorkbook, j'y ai collé cette macro

VB:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
On Error Resume Next
Sh.ShowAllData 'libère filtre
On Error GoTo 0
End Sub

A+

Martial
 

loulouange

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

Bonsoir Martial,

Merci d'avoir pris le temps de te pencher sur mon fichier.

Je me doutais bien que le fichier en lui même était déja bien lourd avec toutes les formules et codes qu'il contient, mais bon grace à toi j'ai gagné quelques ko :eek:

Tu es allé voir dans les codes vba ?
J'ai l'impression que la feuille typo est plus rapide , tu y a fait quelque chose ?

Super pour le code concernant la libération des filtres, c'est bien pratique !

J'aurais encore une question, je pense qu'après ça j'aurais fait le tour lol

Dans la listebox, y a t'il moyen de ne pas prendre en compte les personnes qui sont sorties ou jamais vues ?
C'est à dire peut ont faire un tri par rapport à la colonne Y "Stade acpgt" de la feuille1, en ignorant ces deux critères.

Si cela est trop complexe, je me demandais si on pouvait faire défiler la listbox avec la roulette de la souris ?
J'ai vu ce post sur le forum mais j'ai un peu de mal à savoir les lignes à utiliser.
https://www.excel-downloads.com/threads/combobox-et-molette-de-la-souris.44363/

A te relire

Loulou
 

Yaloo

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

Re,

Pour la feuille Typo, je n'ai rien fait de particulier à part supprimer les lignes et les colonnes vides. D'après mes différents essais, je me suis aperçu que lors de tests et modifications, même si l'on supprime certaines données, Excel les "garde" en mémoire, donc ça prend de la place et de l'espace. Donc pour alléger un fichier je commence toujours par là :eek:.
Pour l'UserForm3, j'ai modifié la macro afin que les lignes comportant "Jamais vu" et "Sortie" n'apparaissent pas dans ta ListBox.
Quant au fichier de Ti, chez moi ça ne fonctionne pas, ça plante Excel obligé de faire un bon vieux Ctrl+Alt+Supp pour m'en sortir.

Voir le fichier ici.

A+

Martial
 

loulouange

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

Bonjour Martial, le forum,

Excellent travail ! à présent ma listbox est beaucoup plus courte, donc finalement ça ira très bien sans la fonction molette de la souris - désolée d'avoir fait planter ton programme :(

Je l'aime ce fichier !!:D merci infiniment pour ton aide !!!

Juste une dernière petite chose et après ça sera la perfection !

j'ai réussi à trouver la formule pour comptabiliser les doublons mais j'ai un problème car certaines cellules ont l'erreur #VALEUR!

cette formule est insérée dans la feuille1 dans les colonnes AD et AE

Formule dans AD :
Code:
=SOMMEPROD(SI((AC3="X");($D$2:$D2=$D3)*($E$2:$E2=$E3)*($D3<>"")))

J'ai bien validé la formule avec CTRL + MAJ + ENTREE

Je cherche les doublons pour les personnes qui ont le même nom et prénom et qui font partie du site Mtp
Cellule AC (site Mtp) Cellule D (NOM) Cellue E (Prénom)

J'ai donc constaté que l'erreur #VALEUR! se trouvait sur les lignes ou la cellule AC était vide

J'ai essayé avec SIERREUR ou NONVIDE mais ça ne fonctionne pas.

Voila si tu a une idée...

A te relire.

Loulou
 

loulouange

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

Bonjour Martial, le forum,

Ca fonctionne !! Merci infiniment.

J'avais un petit problème au début car il me comptait des doublons sur une personne qui apparaisait deux fois mais pas pas sur le même site, mais en précisant ainsi : ($AB$3:$AB3="X") c'est réglé :)

Je vais encore faire mon enquiquineuse et avant de te solliciter à nouveau, je t'assure que j'ai cherché.
Le soucis c'est que lorsque j'insère une colonne la formule disparaît, donc est il possible de la mettre dans le vba, mais bon si c'est compliqué ne t'embête pas je n'aurais qu'a refaire un copier coller, c'est vraiment qu'un petit détail ;)

Voici la formule :

Code:
=SI(AB3="";"";SI(SOMMEPROD(($D$3:$D3=$D3)*($E$3:$E3=$E3)*($AB$3:$AB3="X"))>1;"1";""))

A te relire

Loulou
 

Discussions similaires

Statistiques des forums

Discussions
314 719
Messages
2 112 181
Membres
111 452
dernier inscrit
christine64