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

loulouange

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

bonsoir le forum, bonsoir Martial,

Oui c'est bien ça, Je pense qu'il faut faire des conditions avec if mais je visualise mal le code pour l'instant.

J'ai essayé de comprendre tes interrogations et je suis retournée sur le fichier données.

Actuellement si je modifie des données, par exemple l'orthographe d'un nom dans les colonnes de B à G dans la feuille "général" ça corrige aussi dans la feuille CB.

Est ce que tu veux dire que si l'on mets une formule disant de ne prendre que les lignes correspondantes aux conseillers soient uniquement reportées dans leur feuille respective cela ne fera pas la modification ?

Je ne comprends pas quand tu dit que les lignes risquent de ne pas être copiées dans le meme ordre ?

J'ai mis une macro tri de A à Z donc lorsque je clique sur le bouton dans la feuille "général" ça fait également le tri dans les autres feuilles.

Ensuite les lignes sont rajouter au fur et à mesure au meme niveau non ?
je veux dire par exemple que dans la feuille "général" j'ai rentré des noms de la ligne 3 à ligne 10, si je vais dans la feuille CB c'est la même chose.

j'ai un peu de mal à saisir l'histoire des lignes qui s'ajoutent et des risques de doublons. comme je le disais plus haut, j'ai testé si je modifie le nom suite à une erreur, ça modifie aussi sur la feuille CB sur la meme ligne, donc pas de doublons.

Désolée si je ne suis pas assez claire et pour toutes ces questions. Mais si c'est vraiment trop compliqué c'est pas bien grave, je ne ferais pas de feuille par conseiller.

Au plaisir de te lire.

Bonne soirée.
 

Yaloo

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

Bonsoir loulouange,

Comme tu ne copies que les colonnes de B à G et que tu fais ton tri, les données sont mises dans l'ordre alpha des noms.

Si par exemple, tu as ALBIN, BRUNO, MARTIN et SYLVESTRE et que tu as des données dans tes colonnes de H à X correspondant à ces lignes, et que tu rajoutes DUPONT. Avec le tri, tu risques d'avoir un problème d'ordre alphabétique puisque DUPONT va venir s'insérer entre BRUNO et MARTIN. Me trompe-je ?

A+

Martial
 

Yaloo

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

Re,

J'ai peut-être vu un problème où il n'y en avait pas. Si le tri est fait après la copie des données, il n'y a peut-être pas de problème.

Tu veux toujours faire la copie avec une procédure Change ? ou par bouton ?

Dans le fichier ci-dessous, je l'ai fait avec la procédure Change. Surtout ne pas fusionner les cellules des entêtes de colonnes des feuilles.

A+

Martial
 

Fichiers joints

loulouange

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

Bonjour Martial,

Génial ce que tu as fait !

Je suis allée voir comment tu as fait la mise en forme conditionnelle, et j'ai vu que l'on pouvait aussi changer la couleur de la police en allant dans format police, donc c'est possible alors !

Autrement j'ai voulu visualiser le code pour savoir comment tu as fait pour que les lignes soit copiées automatiquement dans les feuille des conseillers mais je n'ai pas trouvé.

Autrement le system "change" est très bien je pense. Je ferais des essais pour être sure que les lignes recopiées ne soient pas mélangées après la colonne G.

Je suis bien contente, grâce à toi ça avance bien. une fois que j'aurais compris le code pour les conseillers, faudra que je penche sur le bouton des lettres types.

Encore merci toi.

Je te souhaite une bonne journée.
 

Yaloo

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

Bonjour loulouange, le forum,

Voici ton fichier modifié, tu trouveras des explications de la code Change. J'en ai profité pour inclure le tri dans la procédure Change et pour modifié ta macro de tri.

A+

Martial
 

Fichiers joints

loulouange

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

bonjour Martial,

Je te remercie pour ton travail.

J'ai regardé ton code et tes explications, je comprends à peu près la logique, je voulais juste savoir en fait à quoi correspondait le "i" ?

De plus, je n'ai pas trouvé comment fait pour dire à excel de recopier la ligne par exemple ou il y a "CB" dans la feuille "général" vers la feuille "CB', ainsi que pour EM et EL.

J'ai vu que le tri se faisait automatiquement dans toutes les feuilles mais là non plus je n'ai pas vu où tu avais mis le code. Désolée mais j'ai un peu de mal avec l’arborescence de la fenêtre des codes.

Par contre, lorsque je remplis la feuille "général" au départ, je ne sais pas quel conseiller va suivre la personne donc la case va rester un moment, j'aurais voulu faire le tri alphabétique meme avec la case vide. Je pensais rajouter mon bouton que j'avais mis au début juste pour faire le tri dans la feuille "générale", je ne sais pas si ça va poser problème avec ton code tri.

Voila pour mes interrogations.

Encore merci pour ta disponibilité.

A bientot.
 

Yaloo

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

Bonjour loulouange,

Dans un premier temps, i prend la valeur de 2 (parcequ'il ne faut pas supprimer les données de la feuille 1 "Général") jusqu'au Nb total de feuille (dans ton cas 4) cela permet de faire une boucle sur toutes les feuilles afin de supprimer les données présentes dans chaque feuille de 2 à 4.

Ensuite i prend la valeur du Nb de ligne remplies dans la feuille 1 "Général".
For i = 3 to [A65536].End(xlUp).Row (de 3 jusqu'à la dernière ligne).
Cette fois, on regarde toutes les lignes et on envoie les données dans la feuille adéquate. CT prend la valeur de la cellule de la colonne A, ensuite on copie les données dans la feuille Sheets(CT) ... puis l'endroit où l'on colle les données.

Si tu ne remplies pas le nom du conseiller pour chaque ligne, il faut changer [A65536] par [C65536] à chaque fois.

Pour le tri, j'avais laissé le tri indépendant de la macro Change, je le rappelle juste à la fin de Change. Tu peux donc l'utiliser avec un bouton.

A te relire

Martial
 

loulouange

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

Bonjour Martial,

J'ai relu plusieurs fois tes explications, et je pense avoir saisi !! en fait pas besoin de préciser dans la macro les noms des conseillers "CB" 'EL" ou "EM", si j'ai compris, tu lui demandes de repérer dans la feuille 'général" dans la colonne A3 le nom du conseiller et de chercher le meme nom dans les feuilles que j'ai nommées par conseiller, et là il copie les lignes correspondantes, c'est bien ça ?

Par contre j'ai pas bien compris cette phrase :

"Si tu ne remplies pas le nom du conseiller pour chaque ligne, il faut changer [A65536] par [C65536] à chaque fois."

Quel est le risque si je ne fais pas ce changement ?

Merci pour ton aide.
 

Yaloo

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

Bonjour,
Oui c'est bien ça.
Pour le deuxième point, si tu ne remplies pas toutes les données du conseiller, tu risques d'avoir la dernière ligne remplie avec le nom et coordonnées mais la colonne A sera vide, donc la macro ne prendra pas en compte la dernière ligne. C'est pour cela qu'il vaut mieux chercher la dernière cellule vide de la colonne C puisque c'est le nom et qu'il y aura toujours un nom.
A+
Martial
 

loulouange

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

Bonjour Martial,

J'ai essayé de comprendre tes explications mais j'avoue avoir un peu de mal.

Je suis désolée avec toutes mes questions, tu passes déjà beaucoup de temps pour me répondre et je ne voudrais pas abuser.

Dans ce que j'ai compris :

La macro affecte la ligne de la personne dès qu'elle connait le nom du conseiller se trouvant dans la colonne A1 de la feuille "Général"

Donc si j'ai bien compris il va chercher à chaque fois la dernière ligne, ce qui veut dire si j'ai une ligne avec la colonne AI vide qui se retrouve en haut et si par la suite je la remplie la cellule A1 avec le nom du CT, la macro ne la détectera pas parce qu'elle ne se trouvait pas sur la dernière ligne ?


J'ai fait un test avec le tableau :

1 : j'ai rajouté deux nouvelles personnes à la fin de la liste avec les colonnes A1 vides


2 : j'ai fait comme tu as m'a dit j'ai remplacé [C65536] par [C65536] sur cette ligne

For i = 3 to [A65536].End(xlUp).Row

3 : j'ai pris la dernière ligne et remplis la case A1 par le nom du CT (la ligne au dessus elle a toujours la case A1 vide)

J'ai eu un message d'erreur, j'ai fait une capture d'écran pour te montrer :


J'ai voulu du coup changer aussi le code sur cette ligne jaune par [C65536] mais le problème reste le même.

Je ne sais pas si ce que je demande est possible. Sinon je recopierais les colonnes manuellement c'est pas bien grave.

Par contre j'ai une dernière question, comment peut on annuler les dernières modifications, car je dois à chaque fois fermer le fichier sans l'enregistrer et recommencer.

A bientôt pour te lire.

Bonne journée.
 

Fichiers joints

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
 

Fichiers joints

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.
 

Yaloo

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

Re,

Je ne sais pas s'il existe des tutos pour personnaliser un bouton, mais tu peux prendre n'importe quelle image et lui affecter une macro.

A+

Martial
 

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.
 

Fichiers joints

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.
 

Fichiers joints

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
 

Fichiers joints

Dernière édition:

Discussions similaires


Haut Bas