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 Martial,

Merci infiniment pour le gros travail que tu as fait !! Je n'ai pas le temps tout regarder ce soir dans le détail, j'ai vu donc que lorsque l'on clique sur une des feuilles des conseillers, une mise à jour se fait à chaque fois c'est ça ?

Je vais faire des essais pour mieux comprendre le fonctionnement et reviendrais te voi.

J'avais une tite question tout de même.

J'ai essayé de faire un tableau test, avec deux feuilles, une feuille active donc et la seconde qui reprend les noms et prénoms avec d'autres colonnes à remplir au fur et à mesure.

J'ai eu beau comparer tes différentes versions à savoir :

je n'ai pas réussi à trouver comment tu as fait pour résoudre le problème concernant l'histoire des lignes recopiées dans les feuilles des CT : les données qui se trouvaient à la suite de celles recopiées étaient décalées
par ex : si on met un croix dans la cellule L à la ligne 10 et qu'une ligne s'insère avec la macro tri dans le tableau et se positionne au dessus, la croix ne suit pas et du coup se retrouve avec celle qui vient d'etre rajoutée.

Voila si tu pouvais m'éclairer sur la question ça me serait d'une grande aide.

Encore merci.

Bonne soirée.

Loulou
 

Yaloo

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

Bonjour Loulou,

Pour les feuilles Conseiller, toutes les données sont rapatriées lors de l'activation de la feuille. Donc nous récupérons les coordonnées du Stagiaire ainsi que les valeurs se trouvant dans les colonnes de I à R dans la feuille Base. Ensuite le tableau complet est trié.

A+
 

loulouange

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

Bonjour Martial,

J'ai pris le temps de regarder ton fichier et tes explications, et revu tous les posts (ça en fait !!) pour bien comprendre et éviter de te reposer les mêmes questions :eek:

C'est incroyable ce que l'on peut faire avec excel, vraiment chapeau pour ton boulot, tu as du y passer du temps ça me touche beaucoup.

Donc dès que l'on fait une modification dans n'importe quelle feuille, tous les onglets se mettent à jour.
Bonne idée de mettre un ID pour chaque stagiaire, surtout que certains stagiaires reviennent et ne sont pas forcément dans la même action.

En ce qui concerne la feuille que tu as rajouté "Base", j'essaye de comprendre son utilité :

--> tu as fait une macro qui regroupe les données de la feuille générale + celles des CT.

As-tu crée la feuille "Base" pour pouvoir faire en sorte que la mise à jour de toutes les feuilles se fassent automatiquement lorsqu'il y a une modification ?

Est ce une passerelle ? j'essaye de comprendre et j'ai du mal à m'exprimer lol
Je veux dire quand on modifie une ligne sur une des feuilles (générale ou CT) est ce que dans un premier temps le changement se fait dans la feuille "Base" puis ensuite va se répercuter dans les autres feuilles ?

Pour répondre à ta question sur les dates des bilans, échéances etc... , se sont bien des données différentes

Bon je reviens encore avec ma question que j'avais posée l'autre jour, j'ai passé l'après midi à comprendre mais j'ai vrament du mal.

C'est au sujet des colonnes qui suivent à la suite de celles qui sont recopiées dans les feuilles CT.
Il y avait un décalage. Dans ton dernier fichier tu avais résolu le problème (fichier ci-joint "données sources essais (1)).

J'ai essayé de faire un tableau en me basant sur ton modèle, mais là pas de feuille par CT, toutes les données sont recopiées dans une seule feuille.
Apparemment j'ai réussi à faire ce transfert, mais le problème de ligne décalée est revenu :

Dans la feuille "Affectation" les données sont recopiées jusqu'à la colonne I. ensuite les colonnes qui suivent sont remplies sans macro.
Ici par exemple dans la colonne J il y a des croix et si un stagiaire se rajoute au dessus du dernier de la iiste : "WILLIAM", la croix ne suit pas et va re retrouver en face du nouveau stagiaire.

Je n'arrive pas à identifier les lignes dans la macro par rapport au changement que tu avais fait ,à savoir :

1er action : on recopie les données dans la feuille concernée
2eme action : on fait ensuite le tri alphabétique sur le tout le tableau


J'ai rajouté une feuille "Sept-2013", je voulais reporter dans les colonnes A B et C le "CT" "NOM" et "Prénom" mais je n'y suis pas parvenu, et de plus cela bloquait la macro de la feuille"Affectation" alors j'ai préféré laissé.

Voila j'espère que tu auras encore un peu de temps et de patience à m'accorder.

Ci-joint mon fichier, et celui que tu m'avais envoyée la dernière fois.

Au plaisir de te lire.
 

Fichiers joints

Dernière édition:

Yaloo

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

Bonjour Loulou,

Donc dès que l'on fait une modification dans n'importe quelle feuille, tous les onglets se mettent à jour.
Bonne idée de mettre un ID pour chaque stagiaire, surtout que certains stagiaires reviennent et ne sont pas forcément dans la même action.

En ce qui concerne la feuille que tu as rajouté "Base", j'essaye de comprendre son utilité :

--> tu as fait une macro qui regroupe les données de la feuille générale + celles des CT.

As-tu crée la feuille "Base" pour pouvoir faire en sorte que la mise à jour de toutes les feuilles se fassent automatiquement lorsqu'il y a une modification ?
Oui, toutes tes données sont stockées dans cette feuille, ensuite tu fais ton marché ;), pour tel type de feuille, tu récupères certaines données, pour tel autre, tu en récupères d'autres.

Est ce une passerelle ? j'essaye de comprendre et j'ai du mal à m'exprimer lol
Je veux dire quand on modifie une ligne sur une des feuilles (générale ou CT) est ce que dans un premier temps le changement se fait dans la feuille "Base" puis ensuite va se répercuter dans les autres feuilles ?
Les choses se font en 2 temps :
1 - Lorsque tu modifies ou ajoutes une donnée dans une feuille, celle-ci est reportées dans la feuille Base.
2 - Lorsque tu accèdes à une feuille, les données sont "piochées" dans la feuille Base pour être restituées dans ta feuille active.

Bon je reviens encore avec ma question que j'avais posée l'autre jour, j'ai passé l'après midi à comprendre mais j'ai vrament du mal.

C'est au sujet des colonnes qui suivent à la suite de celles qui sont recopiées dans les feuilles CT.
Il y avait un décalage. Dans ton dernier fichier tu avais résolu le problème (fichier ci-joint "données sources essais (1)).
C'était le but, puisqu'à chaque activation de feuille Conseiller tout est repris sur la feuille Base.

Dans la feuille "Affectation" les données sont recopiées jusqu'à la colonne I. ensuite les colonnes qui suivent sont remplies sans macro.
Ici par exemple dans la colonne J il y a des croix et si un stagiaire se rajoute au dessus du dernier de la iiste : "WILLIAM", la croix ne suit pas et va re retrouver en face du nouveau stagiaire.

Je n'arrive pas à identifier les lignes dans la macro par rapport au changement que tu avais fait ,à savoir :

1er action : on recopie les données dans la feuille concernée
2eme action : on fait ensuite le tri alphabétique sur le tout le tableau
Il faudrait que tu m'explique exactement ce que tu souhaites faire.
Tu pars de quelle feuille, tu copies quoi ? Dans quelle feuille ? A quel endroit ? etc...

Ci-joint mon fichier, et celui que tu m'avais envoyée la dernière fois.
Pourquoi celui-ci, le fichier avec les identifiants et la base ne fonctionne pas ?

A te relire

Martial
 

loulouange

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

Coucou Martial,

Ton fichier avec identifiant et la feuille base est nickel !! je vais le garder précieusement il est vraiment tip top !

j'ai donc apparemment bien saisi le principe, sans la feuille "BASE" que tu as créée on ne pourrait pas faire ces mises à jour automatique instantanément ?

Pour ce qui concerne mon autre question (c'est le fichier "suivi ateliers2") : cela concerne une autre action, avec des personnes et données différentes , je voulais comprendre comment tu avais fait pour éviter que les lignes soient décalées.
Je voulais donc partir d'un exemple plus "simple" comme le fichier que tu m'avais envoyé avec la correction de cette erreur, et celui que j'ai crée, j'aimerais comprendre ce que tu as changé dans la formule, afin que je puisse si besoin refaire un tableau dans le même style.

Je pars donc de la feuille Acrive nommée "Liste participants" et je voudrais recopier certaines données dans la feuille "Affectation" puis d'autres données dans "Sept-2013"

Mais je répète celui avec les identifiants est super et franchement je n'espérais pas un résultat aussi sophistiqué, encore merci
pour ce gros travail.

Voila j'espère que j'ai été assez claire et que tu pourras m'aider.

Bonne soirée.

Loulou
 
Dernière édition:

Yaloo

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

Bonjour Loulou,

A mon sens, il faut mieux passer par une feuille Base, je pense que c'est plus simple à gérer.

Veux-tu que j'y regarde ?

A+
 

loulouange

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

Bonjour Martial,

J'avais l'impression qu'avec ton système incluant la feuille "Base", la macro était plus complexe mais si tu penses que c'est mieux je veux bien que tu tentes quelque chose sur mon fichier "ateliers2".

Toutefois, j'aurais bien voulu comprendre mon erreur, et savoir pourquoi je n'ai pas réussi à faire en sorte que le tri se fasse sur toute la ligne et colonnes en respectant l'ordre des données qui suivaient (les croix) ?

Au plaisir de te lire.

Loulou
 

Yaloo

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

Re,

Tu n'as pas fait d'erreur, mais dans la macro de transfert (d'une feuille à l'autre) on commence par supprimer les données de la feuille2 jusqu'à la colonne F (donc on conserve les x) puis on colle ligne par ligne les nouvelles valeurs, mais ces valeurs ne se retrouvent pas forcément dans l'ordre initial de la feuille 2, donc lorsque l'on trie les x sont décalés.

On pourrait presque y arriver en contrôlant toutes les cellules de la ligne de la feuille 1 pour vérifier si elle existe déjà dans la feuille 2 et ne copier (dans la première ligne vide) que les lignes n'existant pas dans la feuille 2. Mais ce serait plus long et surtout problématique si une des cellules étaient modifiées, car cela recréerait une ligne déjà existante.

Je pense réellement que le système avec la feuille Base est LA solution.

J'y regarde au plus tôt.

A+

PS : Tu n'aura que ces 4 feuilles, ou tu vas en ajouter d'autres ?
 

loulouange

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

Pour le fichier "suiviateliers2", je vais devoir créer une feuille par mois donc de sept à déc.

Autrement, si je fais une modification, par exemple si je supprime une ligne dans les feuilles correspondant au mois il ne faut pas que cela se répercuté sur les autres feuilles.
 

Yaloo

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

Juste une petite idée comme ça, dans ta feuille Affectation au lieu de mettre des x, tu mets ton N° de semaine, tes données peuvent être envoyées directement dans la bonne semaine.

Dans le même temps, faire une feuille à l'année ou au semestre, et mettre des N° de semaines, lorsque tu actives ta feuille cela te cale à ton N° de semaine.

Ce n'est qu'une idée, je ne sais pas comment tu travailles ....:eek:
 

Yaloo

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

Voici le fichier avec ce que je te disais au post précédent.

A savoir, à l'activation ou à la modification des 2 premières feuilles, celles-ci se mettent à jour ou mettent à jour la feuille Base.

J'ai créé une feuille Suivi qui contient toute l'année (plutôt qu'avec un seul mois), lorsque tu l'actives, la macro récupère les données de la feuilles Base et les insères dans cette feuille, en plaçant des X en fonction de la date et de l'heure du RV saisie auparavant dans la feuille Affectation. La macro vient positionner la feuille en fonction du N° de semaine actuel.

J'en ai profité pour rajouter certaines données dans la feuille Menu Déroulant.

En espérant que cela va dans le bon sens :eek:

A te relire

Martial
 

Fichiers joints

loulouange

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

Bonjour Martial,

Quelle rapidité, même pas eu le temps de te répondre ! :)

Mais excel n'a aucun secret pour toi !! je suis impressionnée de tout ce que tu arrives à faire.

J'ai regardé ton fichier, la mise en place de formules pour avoir les semaines et jours automatiquement est géniale ! J'ai vu que pour cela tu as rajouté des infos dans les menus déroulants.


Une tite question mais c'est un détail, comment fais tu pour que par exemple dans le tableau de la feuille "Suivi" :

- dans la cellule D3 où se trouve la formule "=nosemaine('Menu Déroulant'!F3)" le résultat qui est dans ce cas "1" est bien centré alors que tu n'as pas fusionné les cellules de D3 à G3 ?

Voila comment est géré le classeur :

Dans la feuille "Affectation" : seuls les conseillers la complète.
Chaque stagiaire doivent chaque semaine participer à 3 ateliers, généralement se sont toujours les memes.
Donc les conseillers renseignent par des croix les personnes affectées sur tel ou tel atelier.
Une fois par semaine, ils vérifient que la liste est à jour, car elle peut etre modifiée dans le cas d'un nouveau stagiaire ou d'un départ. Et aussi d'un changement d'atelier.

Dans la feuille "Suivi" : c'est moi qui gère cette partie :
Partons de la première semaine 1 Je vais faire un copier-coller (ou par macro) des colonnes K à U se trouvant dans la feuille Affectation.
Chaque jour je dois noter dans les cases les personnes qui ont été présentes ou absentes, donc je remplace les croix par des cases "P" (présent) ou "A"(absent). Ceci pour ensuite savoir qui doit être relancé suite à absence.

C'est pour cela que si une info change dans les autres feuilles cela ne doit pas se répercuter dans celle-ci. Je dois garder l'historique sur toute l'année des présences et absences.

Re,

Tu n'as pas fait d'erreur, mais dans la macro de transfert (d'une feuille à l'autre) on commence par supprimer les données de la feuille2 jusqu'à la colonne F (donc on conserve les x) puis on colle ligne par ligne les nouvelles valeurs, mais ces valeurs ne se retrouvent pas forcément dans l'ordre initial de la feuille 2, donc lorsque l'on trie les x sont décalés.

On pourrait presque y arriver en contrôlant toutes les cellules de la ligne de la feuille 1 pour vérifier si elle existe déjà dans la feuille 2 et ne copier (dans la première ligne vide) que les lignes n'existant pas dans la feuille 2. Mais ce serait plus long et surtout problématique si une des cellules étaient modifiées, car cela recréerait une ligne déjà existante.

Je pense réellement que le système avec la feuille Base est LA solution.

Excuse moi de revenir à la charge mais je suis restée un peu sur ma faim ;)
J'aimerais vraiment comprendre comment tu y est arrivé, car dans le dernier fichier que tu m'avais envoyé, tu n'avais pas encore opté pour la feuille "Base" et pourtant ta macro fonctionne et il n'y pas de problème de colonne décalée par rapport à la ligne. Je te remets le fichier en question j'ai rajouté "tri ok" dans le nom pour éviter toute confusion.

Désolée d'insister mais ça me travaille trop !!

Merci pour ton aide précieuse.

A te relire.

Loulou
 

Fichiers joints

Yaloo

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

Bonjour Loulou,

Une tite question mais c'est un détail, comment fais tu pour que par exemple dans le tableau de la feuille "Suivi" :

- dans la cellule D3 où se trouve la formule "=nosemaine('Menu Déroulant'!F3)" le résultat qui est dans ce cas "1" est bien centré alors que tu n'as pas fusionné les cellules de D3 à G3 ?
Les cellules fusionnées mettent pas mal la pagaille dans les fichiers avec macros, donc moins j'utilise de cellules fusionnées et mieux je me porte. Pour arriver au résultat d'un centrage sur plusieurs colonnes, tu sélectionnes D3:G3 tu clic-droit, "Format de cellule", l'onglet "Alignement" et dans alignement du texte : horizontal tu sélectionnes "Centrer sur plusieurs colonnes" puis OK.

C'est pour cela que si une info change dans les autres feuilles cela ne doit pas se répercuter dans celle-ci. Je dois garder l'historique sur toute l'année des présences et absences.
Ok, c'est bien ce qui me semblait après avoir posté le fichier, il ne faut pas insérer de données directement, c'est à toi de le faire. Il suffit de supprimer la macro Worksheet_Activate de la feuille Suivi.

Excuse moi de revenir à la charge mais je suis restée un peu sur ma faim ;)
J'aimerais vraiment comprendre comment tu y est arrivé, car dans le dernier fichier que tu m'avais envoyé, tu n'avais pas encore opté pour la feuille "Base" et pourtant ta macro fonctionne et il n'y pas de problème de colonne décalée par rapport à la ligne. Je te remets le fichier en question j'ai rajouté "tri ok" dans le nom pour éviter toute confusion.

Désolée d'insister mais ça me travaille trop !!
Ne t'excuses pas de demander :) , lors de l'envoi de données, je ne supprimais pas les données de la feuille Conseiller, mais j'ajoutais la ligne modifiée à la fin de la feuille Conseiller, avec DerL. Ensuite je faisais le tri, comme la dernière ligne ajoutée se trouvait en dernier, les x étaient trier en même temps que les données de la même ligne.

A+

Martial
 

Yaloo

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

Re,

Tu peux supprimer une partie de la macro, mais conserver quand même le calage sur la semaine. Mais il vaut mieux modifier la igne comme ça :
Application.Goto Cells(1, Application.Match(Sheets("Menu Déroulant").[H3] - 1, Plage, 0)), -1
avec la ligne ci-dessus, le planning est calé à la semaine précédente celle en cours.

A+
 

loulouange

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

Bonjour Martial,

Merci pour tes explications.

Je n'avais jamais pensé à utiliser la mise en forme du centrage sur plusieurs colonnes, j'ai encore beaucoup de choses à découvrir... :)



Bonjour Loulou,
Ne t'excuses pas de demander :) , lors de l'envoi de données, je ne supprimais pas les données de la feuille Conseiller, mais j'ajoutais la ligne modifiée à la fin de la feuille Conseiller, avec DerL. Ensuite je faisais le tri, comme la dernière ligne ajoutée se trouvait en dernier, les x étaient trier en même temps que les données de la même ligne.
Alors j'ai essayé de corriger mon erreur mais je suis perdue :( j'ai changé tout ce que j'ai pu par rapport à ton modèle mais ça plante la macro.

Voici ci-dessous la macro que j'ai et qui fonctionne à part l'histoire de ce fameux tri qui ne se fait pas dans l'ordre :


Option Explicit

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim CT$, i&, DerL&
'Si le N° de la colonne de la cellule active est supérieur à 8 alors on sort
If Target.Column > 8 Then Exit Sub
'Pour i de 2 jusqu'au nb de feuille
'*** Sheets.Count - 1 car tu as rajouté une feuille en dernière position.
For i = 2 To Sheets.Count - 2
'Pour chaque feuille N° i
'On cherche la dernière cellule pleine de la colonne A
DerL = Sheets(i).[B65536].End(xlUp).Row
'Si la dernière ligne est inférieure à 3, la feuille est vide donc on passe à la feuille suivante
If DerL < 3 Then GoTo Suite
'On efface les données de la feuille
Sheets(i).Range("A3:F" & DerL).ClearContents
Suite:
'On passe à la feuille suivante
Next
'Pour toutes les lignes de 3 jusqu'à la fin de la feuille active (général)
For i = 3 To [C65536].End(xlUp).Row
If Cells(i, 1) <> "" Then
'On récupère le nom du conseiller
CT = Cells(i, 1)
'On copie les données de la ligne i dans la feuille du conseiller dans la première ligne vide
DerL = Sheets("Affectation").[B65536].End(xlUp)(2).Row
Range(Cells(i, 1), Cells(i, 4)).Copy Sheets("Affectation").Cells(DerL, 1)
Cells(i, 9).Copy Sheets("Affectation").Cells(DerL, 5)
Cells(i, 10).Copy Sheets("Affectation").Cells(DerL, 7)
Cells(i, 11).Copy Sheets("Affectation").Cells(DerL, 8)
Cells(i, 13).Copy Sheets("Affectation").Cells(DerL, 9)
Cells(i, 20).Copy Sheets("Affectation").Cells(DerL, 6)
End If
'On passe à la ligne suivante
Next
'On lance la macro Tri, du module1
Tri
End Sub


Peux tu me dire où se trouvent mes erreurs dans cette macro ? je te mets ici le fichier pour que tu puisses mieux cerner le problème.


Pour ton dernier fichier avec Worksheet, j'ai tenté de faire comme tu m'as dit j'ai supprimé tout ce qu'il y avait dans le code de la feuille "suivi" et apparemment ça n'affiche plus les données comme auparavant.
J'ai voulu ensuite rajouter ta ligne mais là encore j'ai vraiment du mal pfff y a toujours une message d'erreur : dans la macro "END WITH" se met en surbrillance :


Private Sub Worksheet_Activate()
Dim i&, j&, c&, SemS&, Plage, SemB&
Application.DisplayAlerts = 0: Application.EnableEvents = 0
End With
Application.Goto Cells(1, Application.Match(Sheets("Menu Déroulant").[H3] - 1, Plage, 0)), -1
Application.DisplayAlerts = -1: Application.EnableEvents = -1
End Sub

Je crois vraiment que j'ai un problème de compréhension au niveau des étapes de la macro, je ne sais pas quand mettre les End Sub, Next, IF etc... dans l’exécution j'arrive à comprendre la démarche mais c'est comment passer d'une étape à une autre.


Au plaisir de te lire

Loulou
 

Fichiers joints

Yaloo

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

Bonjour Loulou,

C'est en forgeant que l'on devient forgeron :eek: .... ça va venir, il faut persister.

Généralement, les If, With, For etc... sont comme des parenthèses, lorsque tu en ouvres une, il faut la refermer :
If ....End If , For (ou For Each) .... Next, With ....End With

La seule exception, si je ne me trompe pas, est lorsque tu écris If ta condition Then ton action tout sur la même ligne, dans ce cas-là tu n'es pas obliger d'utiliser End If.

Donc, pour :
VB:
Private Sub Worksheet_Activate()
 Dim i&, j&, c&, SemS&, Plage, SemB&
 Application.DisplayAlerts = 0: Application.EnableEvents = 0
 End With
 Application.Goto Cells(1, Application.Match(Sheets("Menu Déroulant").[H3] - 1, Plage, 0)), -1
 Application.DisplayAlerts = -1: Application.EnableEvents = -1
 End Sub
Il suffit d'enlever
tu peux aussi en profiter pour enlever les déclarations de variables n'existant plus, puisque tu n'as plus ces variables dans la macro, et enlever également les lignes correspond à l'affichage des messages et d'évènements, donc ta macro devient :

VB:
Private Sub Worksheet_Activate()
Dim Plage
Set Plage = Rows(3)
Application.Goto Cells(1, Application.Match(Sheets("Menu Déroulant").[H3] - 1, Plage, 0)), -1
End Sub
Si l'on souhaite encore simplifier, on peut intégrer la plage directement dans la ligne de code, et faire :

VB:
Private Sub Worksheet_Activate()
Application.Goto Cells(1, Application.Match(Sheets("Menu Déroulant").[H3] - 1, Rows(3), 0)), -1
End Sub
Concernant le tri, c'est normal, puisque en début de macro, tu supprimes toutes les données de la feuille 2, puis tu remets toutes les lignes, donc tu ne rajoutes pas ta ligne à la fin mais tu recrées toutes les lignes une par une. D'où un décalage possible de ces lignes nouvellement créées par rapport aux X. Je pense toujours que la meilleur solution reste avec la Base.

Pour voir ce qui se passe avec chaque ligne de la macro, tu peux mettre un point d'arrêt sur n'importe quelle ligne de code (en faisant F9) puis lorsque tu lances ta macro, celle-ci s'arrêtera au point d'arrêt, tu peux ensuite faire du pas à pas (en faisant F8, pour descendre ligne par ligne.

En espérant avoir répondu à tes questions.

Bonne après-midi

Martial
 

loulouange

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

Bonjour Martial,

J'ai lu avec attention toutes tes explications, j'essaye de comprendre mais ce n'est pas encore bien clair dans ma tête mais bon je ne désespère pas.

J'ai essayé ta technique avec la touche F9 pour arrêter la macro à certaines lignes mais hélas ça ne m'a pas beaucoup aidé, car soit ça bloquait tout soit ça aller jusqu'au bout et je n'ai pas réussi à voir à quel moment la ligne se copiait en fin de tableau et à quel moment le tri se faisait.

Je viens de voir que dans le dernier fichier, celui avec la colonne ID (là où j'ai modifié une partie de la macro dans WORKSHEET ACTIVATE :

les lignes qui se trouvaient dans la feuilles "liste des participants" étaient recopiées dans la feuille "Affectation" dès que le numéro ID était attribué. DE plus il semblerait que dans cette feuille le tri se fasse par ordre de numéro et non alphabétique.
Or avant la ligne n'était recopiée que lorsque la colonne CT de la feuille "liste participants" était remplie et ensuite triée par ordre alphabétique suivant le NOM puis le Prénom. Est-il possible de le faire ainsi ?

J'ai essayé de modifier la macro mais c'est trop complexe pour moi désolée.

De même, pour la feuille "Suivi" les lignes étaient recopiées dès que l'on renseignait le numéro de semaine, comme finalement il ne faut rien effacer dans cette feuille au niveau des colonnes ateliers, j'ai donc comme je l'ai dit plus haut annulé la macro dans WORKSHEET ACTIVATE en mettant le code que tu m'avais donné.
J'aurais aimé que cela fasse comme dans la feuille "affectation", c'est à dire : que les personnes soient recopiées identiquement, juste avec CT, NOM et Prénom, et éviter le décalage avec les colonnes et lignes que l'on avait l'autre fois.

Je te renvoie ton fichier afin que tu puisses mieux cerner le problème.

En te remerciant pour ton aide précieuse.

Bonne journée.
 

Fichiers joints

Dernière édition:

Yaloo

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

Bonjour Loulou,

Pour les feuilles "Liste de participants" et "Affectation" c'est bon dans le fichier ci-dessous.

Pour la feuille "Suivi", cela va poser le même problème que précédemment, si l'on ne recopie pas tout de la base (nom + x) vers cette feuille. Les x vont être décalés.

Soit il faut reprendre toutes les données soit rien du tout.

A te relire

Martial
 

Fichiers joints

Yaloo

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

Re,

Où alors il faut envoyer toutes les données dans la base, y compris les x que tu places dans la feuille "Suivi".

Je vais y regarder.

A+
 

Yaloo

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

Salut Loulou,

Pour finir, j'ai inclus l'envoi de chaque valeur de stage vers la Base.
Le conseiller remplit la feuille Affectation (en mettant la semaine dans la cellule souhaitée), celle-ci va aller mettre un x dans la base suivant la semaine, le jour et heure du stage.
Lorsque tu actives la feuille Suivi, toutes les données sont récupérées dans la Base, y compris les x. Lorsque tu modifies un stage dans la feuille suivi, cela modifie également dans la feuille Base.
Comme ça il n'y a plus de problème de tri avec ou sans les x.

A te relire

Martial
 

Fichiers joints

Haut Bas