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

bonjour,

Martial, pour la touche CTRL+N désolée je n'avais pas vu que cela concernait ton fichier. Je vais d'ailleurs créer une touche raccourcis pour le mien ça peut être utile.

Staple : oui j'ai bien un répertoire c:\lou seulement j'avais simplement mis le code dans la feuille typo mais je ne savais pas comment la déclencher. Mais là je viens de l'activer via un bouton et là ça fonctionne ! encore merci pour ton aide o)

Mon projet arrive quasiment à sa fin, j'ai à présent un outil de travail vraiment génial qui va me rendre grand service.

Je pourrais encore automatiser les tâches mais je crains que cela ne provoque des conflits, car nous travaillons en réseau, j'espère que cela n'est pas un problème.

En effet, ce qui aurait été vraiment le top, c'est que certaines données soient recopiées à partir d'un autre classeur, mais ce dernier est protégé avec macro et mot de passe donc je ne peux pas intervenir dessus.

Je suis en train d'essayer de le faire à partir du fichier de destination, qui est en fait le fichier sur lequel nous avons travaillé ici à savoir "suivi atelier avec id".

Mon autre fichier que je vais appeler "sources1" est en fait le premier fichier que j'utilise lorsque j'enregistre un nouveau stagiaire. Sur ce fichier il y a des données qui sont reprises dans "suivi ateliers avec id" sur la première feuille.

J'aimerais essayer de trouver par moi meme le code, ça me permettrait de voir si j'ai bien compris les macros.
Je voulais juste savoir si cela est bien réalisable bien que nous soyons en réseau et que le fichier source soit protégé.

Dans l'attente de vous lire.


Bonne journée.
 

Yaloo

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

Bonsoir Loulou, Staple,

Normalement, même en réseau tu dois pouvoir recueillir les données d'un autre classeur, il faut seulement avec le mot de passe de protection.

A+

Martial
 

loulouange

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

Bonjour Martial, le forum,

Me revoici avec mon fichier qui m'a donnée pas mal de fil à retordre :eek:

J'ai enfin réussi à créer un bouton qui me permettait de rajouter à partir d'un autre fichier la dernière ligne de ce dernier dans le fichier sur lequel nous avons travaillé ensemble.

Au départ je pensais qu'il fallait mettre des variables, comme dans le code que tu avais fait pour la recopie des données de la feuille "Base" vers les autres feuilles, avec "i" et "j" mais je n'y suis pas arrivée.

J'ai fait de cette manière, je ne sais pas si c'est la plus simple mais ça fonctionne !!

Code:
Sub Coller()
Set Source = Workbooks("sources1.xlsm")
Set Destin = ThisWorkbook
i = Destin.Worksheets(1).Range("A65536").End(xlUp).Row + 1
derlig = Source.Sheets(3).[D65536].End(xlUp).Row
Source.Sheets(3).Range("D" & derlig).Rows.Copy _
          Destination:=Destin.Sheets(1).Cells(i, 4)
Source.Sheets(3).Range("E" & derlig).Rows.Copy _
          Destination:=Destin.Sheets(1).Cells(i, 5)
Source.Sheets(3).Range("F" & derlig).Rows.Copy _
          Destination:=Destin.Sheets(1).Cells(i, 11)
Source.Sheets(3).Range("G" & derlig).Rows.Copy _
          Destination:=Destin.Sheets(1).Cells(i, 8)
Source.Sheets(3).Range("N" & derlig).Rows.Copy _
          Destination:=Destin.Sheets(1).Cells(i, 22)
     
    'On trie par rapport au Nom puis Prénom
  Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo
End Sub

Par contre, j'aurais vu que cela copie les données sans les mises en forme et là je ne sais pas comment faire, je pense qu'il faut utiliser i=j mais voila je n'ai pas trouvé la formule.


J'avais une autre question au niveau des mises en forme conditionnelles qui appliquent une couleur différente selon le choix de la liste déroulante. Existe t'il une astuce permettant de reproduire les mêmes conditions sur les autres feuilles sans devoir tout refaire manuellement ?

Je te remercie par avance de l'aide que tu pourras m'apporter.

Au plaisir de te lire.

Loulou
 

Yaloo

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

Bonjour Loulou,

Vois comme ça, ça doit le faire.

VB:
Sub Coller()
Set Source = Workbooks("sources1.xlsm")
Set Destin = ThisWorkbook
i = Destin.Worksheets(1).Range("A65536").End(xlUp)(2).Row
  derlig = Source.Sheets(3).[D65536].End(xlUp).Row
  Destin.Sheets(1).Cells(i, 4) = Source.Sheets(3).Range("D" & derlig)
  Destin.Sheets(1).Cells(i, 5) = Source.Sheets(3).Range("E" & derlig)
  Destin.Sheets(1).Cells(i, 11) = Source.Sheets(3).Range("F" & derlig)
  Destin.Sheets(1).Cells(i, 8) = Source.Sheets(3).Range("G" & derlig)
  Destin.Sheets(1).Cells(i, 22) = Source.Sheets(3).Range("N" & derlig)
      
  'On trie par rapport au Nom puis Prénom
  Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo
End Sub

A+

Martial
 

loulouange

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

Bonjour Martial, le forum

J'ai fais plusieurs tests, et pour le code que tu m'as transmis ça fonctionne parfaitement.

Mais il y a toujours un truc qui coince grrrrr on trouve une solution et moi je reviens avec d'autres problèmes désolée je suis vraiment pas douée :(

En fait j'ai crée donc un bouton avec ce code qui recopie la dernière ligne à partir d'un autre fichier. J'en ai fait meme deux puisque il existe deux sources différentes.

J'ai du toutefois enlever le code de tri qui se trouvait à la base dans la feuille "Liste participants" ci-dessous :

VB:
Option Explicit
Dim Id&, i&, j&
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = 0: Application.EnableEvents = 0
i = Target.Row
'Récupération de l'Identifiant de la ligne modifiée
Id = Cells(i, 1)
  'On met en majuscule ou en nom propre les colonnes D, E, F, G et I
  Cells(i, 4) = StrConv(Cells(i, 4), 1)
  Cells(i, 5) = StrConv(Cells(i, 5), 3)
  Cells(i, 6) = StrConv(Cells(i, 6), 3)
  Cells(i, 7) = StrConv(Cells(i, 7), 3)
  Cells(i, 9) = StrConv(Cells(i, 9), 1)
  'On cherche l'Id dans la colonne A de Base
  'Si on le trouve
  If Not IsError(Application.Match(Id, Sheets("Base").Columns(1), 0)) Then
    'On copie les données de la ligne modifiée
    j = Application.Match(Id, Sheets("Base").Columns(1), 0)
    Sheets("Base").Cells(j, 2).Resize(, 22).Value = Cells(i, 2).Resize(, 22).Value
  'Si l'Id n'est pas trouvé
  Else
    'Si la colonne est D (Nom) et l'Id est vide
    If Target.Column = 4 And Cells(i, 1) = "" Then
      With Sheets("Base")
        'Dans la Base on crée un nouvel Identifiant
        j = .[A65536].End(xlUp)(2).Row
        .Cells(j, 1) = .Cells(j - 1, 1) + 1
        'On copie le nouvel Identifiant dans "Général"
        Cells(i, 1) = .Cells(j, 1)
        'On copie le nouveau nom dans Base
        .Cells(j, 4) = Cells(i, 4)
       End With
    End If
  End If
  'On trie par rapport au Nom puis Prénom
  Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo
Application.DisplayAlerts = -1: Application.EnableEvents = -1
End Sub

En effet, lorsque j'utilisais le bouton pour coller la ligne : le tri se faisait de suite à partir de la colonne D (Nom) et donc les données qui suivaient a la suite de la colonne D restaient sur la dernière ligne.

Une petite explication pour comprendre la suite :

J'ai donc deux fichiers sources qui sont remplies selon le lieu où réside le stagiaire.

J'ai donc crée deux boutons : sources1 et sources2

Donc lors de l'enregistrement d'un nouveau stagiaire j'ouvre soit le fichier source1 ou source2 je remplie ma ligne, ensuite l'idée est d'avoir le fichier "suivi ateliers...." ouvert et de là je clique sur le bouton correspondant pour rajouter ma ligne dans ce tableau, et ainsi de suite.
A la fin de ma mise à jour, je termine en triant par ordre alphabétique mon fichier sources1 ou sources2.

Mais si par erreur ou oubli, je devais rajouter la ligne manuellement, j'aimerais que le tri se fasse aussi mais je n'arrive pas à trouver le code afin que le tri ne se fasse que lorsque la colonne V ou W soient remplie.

Je pourrais autrement passer encore par un autre bouton pour faire le tri mais bon s'il y a plus simple je préférerais.

Autres soucis que j'ai rencontré : j'ai voulu avoir un fichier vierge pour pouvoir repartir de zéro, mais il semblerait qu'il y ai un conflit avec le renvoi dans la feuille "base" et l'attribution du numéro d'identifiant, j'ai le message suivant lorsque j'ai commencé à rentrer un premier contact dans la feuille "liste participants :

"erreur d'exectuion "13"
Ce qui me renvoie à cette ligne qui est en jaune

Code:
.Cells(j, 1) = .Cells(j - 1, 1) + 1

Je te joins le fichier vierge pour que tu puisses mieux comprendre le problème.

Voila où j'en suis, encore merci pour ton aide.

Bonne soirée.

Loulou
 

Pièces jointes

  • suivi ateliers avec ID vierge.xlsm
    230 KB · Affichages: 47
  • suivi ateliers avec ID vierge.xlsm
    230 KB · Affichages: 48
  • suivi ateliers avec ID vierge.xlsm
    230 KB · Affichages: 44

Yaloo

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

Bonjour Loulou,

Pour ton problème de mise à jour et de tri, essaies de mettre Application.EnableEvents = 0 en début de macro et Application.EnableEvents = -1 en fin de macro, cela permet de suspendre les macros évènementielles. Par contre, comme le tri normalement se fait lorsque tu ajoutes un stagiaire (cela ne va pas se faire) donc je pense qu'il faut que tu mettes un tri à la fin de ta macro, juste avant Application.EnableEvents = -1.

Dans le fichier ci-joint j'ai modifié la mise à jour du N° d'identifiant, ainsi que la suppression des données ou l'envoi de données lorsqu'il n'y a pas de stagiaire.

Pour tes histoires de tri et d'oubli je n'ai pas tout compris dans quel fichier tu te trouves et ce que tu veux faire.

A te relire

Martial
 

Pièces jointes

  • suivi ateliers avec ID vierge.xlsm
    225.7 KB · Affichages: 48
  • suivi ateliers avec ID vierge.xlsm
    225.7 KB · Affichages: 49
  • suivi ateliers avec ID vierge.xlsm
    225.7 KB · Affichages: 55

loulouange

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

je continue mes recherches et je me posais la question :

N'y a t'il pas moyen de demander dans le code TRI de la feuille "liste participants" de ne débuter que le tri que lorsque la cellule V ou W soient replies ?

J'ai essayé de faire un code mais c'est pas gagné...

Code:
If .Cells(i,22) or Cells(i,23)= "X" Then
Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo

bon c'est clair ça ne fonctionne pas, est ce possible ?
 
Dernière édition:

loulouange

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

oups je sais pas ce que j'ai fabriqué mais mon message précédent a disparu, je vais essayé de le remettre car j'avais un autre onglet d'ouvert avec mon post :

Code:
rebonjour Martial,

Merci de t'être penché sur mon problème.

J'ai essayé de rentrer des nouveaux contacts, je n'ai plus le message d'erreur "13" et l'id semble être bien pris en compte dès le départ.

J'ai remis donc la ligne comme tu me l'a suggérée, à la fin de la macro Worksheet Chante

Code vba:
Option Explicit
Dim Id&, i&, j&
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = 0: Application.EnableEvents = 0
i = Target.Row
'Récupération de l'Identifiant de la ligne modifiée
Id = Cells(i, 1)
  'On met en majuscule ou en nom propre les colonnes D, E, F, G et I
 Cells(i, 4) = StrConv(Cells(i, 4), 1)
  Cells(i, 5) = StrConv(Cells(i, 5), 3)
  Cells(i, 6) = StrConv(Cells(i, 6), 3)
  Cells(i, 7) = StrConv(Cells(i, 7), 3)
  Cells(i, 9) = StrConv(Cells(i, 9), 1)
  'On cherche l'Id dans la colonne A de Base
 'Si on le trouve
 If Not IsError(Application.Match(Id, Sheets("Base").Columns(1), 0)) Then
    'On copie les données de la ligne modifiée
   j = Application.Match(Id, Sheets("Base").Columns(1), 0)
    Sheets("Base").Cells(j, 2).Resize(, 22).Value = Cells(i, 2).Resize(, 22).Value
  'Si l'Id n'est pas trouvé
 Else
    'Si la colonne est D (Nom) et l'Id est vide
   If Target.Column = 4 And Cells(i, 1) = "" Then
      With Sheets("Base")
        'Dans la Base on crée un nouvel Identifiant
       j = .[A65536].End(xlUp)(2).Row
        .Cells(j, 1) = .Cells(j - 1, 1) + 1
        'On copie le nouvel Identifiant dans "Général"
       Cells(i, 1) = .Cells(j, 1)
        'On copie le nouveau nom dans Base
       .Cells(j, 4) = Cells(i, 4)
       End With
    End If
  End If
  'On trie par rapport au Nom puis Prénom
 Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo 
Application.DisplayAlerts = -1: Application.EnableEvents = -1
End Sub

Mais on revient à la case de départ, comme je te l'avais dis dans mon précédent post je l'avais enlevée cette ligne de tri car ça me décalait tout concernant les lignes qui étaient rajoutées via les boutons.

Si le nom était par exemple "BLANCHARD", la ligne remontait tout de suite dès que la colonne D étaient remplie (celle du nom donc) ce qui fait que les autres données des colonnes E à W restaient sur la dernière ligne du tableau. Je parle toujours du fichier "Suivi ateliers" et non des fichiers Sources

Pour le problème d'erreur ou de tri, qui concerne donc le fichier "suivi ateliers", à présent le problème à ce niveau est réglé puisque nous avons remis la ligne tri a la fin de la macro.

Par contre maintenant j'ai des problèmes avec mes boutons :
- la macro ne prend plus en compte la ligne qui se rajoute : pas d'id attribué et ni d'enregistrement dans la feuille base.
- le tri ne se fait plus non plus.

Autrement comme je le disais dans mon précédent post, je peux remplacer la ligne tri en fin de macro de la feuille "liste participants" et remplacer par un bouton tri. Et remettre les codes tri dans les boutons comme auparavant.

Qu'en penses tu ?

et la suite est dans mon dernier post. désolée pour la boulette.
 

Yaloo

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

Re,

2 possibilités, soit tu écris le nom dans la colonne 5 en dernier (pas testé, mais ça devrait fonctionner) ((supprimer les Application.EnableEvents = 0 ou -1))

Où alors en fin de macro écrire ceci :

VB:
Sub Coller()
Application.EnableEvents = 0
Set Source = Workbooks("sources1.xlsm")
Set destin = ThisWorkbook
i = destin.Worksheets(1).Range("A65536").End(xlUp)(2).Row
  derlig = Source.Sheets(3).[D65536].End(xlUp).Row
  destin.Sheets(1).Cells(i, 4) = Source.Sheets(3).Range("D" & derlig)
  destin.Sheets(1).Cells(i, 5) = Source.Sheets(3).Range("E" & derlig)
  destin.Sheets(1).Cells(i, 11) = Source.Sheets(3).Range("F" & derlig)
  destin.Sheets(1).Cells(i, 8) = Source.Sheets(3).Range("G" & derlig)
  destin.Sheets(1).Cells(i, 22) = "X"
Application.EnableEvents = -1
destin.Sheets(1).Cells(i, 4).Activate
Application.OnKey "{F2}"
Application.OnKey "~"
'On trie par rapport au Nom puis Prénom
Range("A3:AA" & [A65536].End(xlUp).Row).Sort [D3], xlAscending, [E3], , xlAscending, , , xlNo
End Sub

Toujours pas sûr que ça fonctionne :eek:

A+
 

loulouange

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

Bonsoir Martial Staple,

Martial : j'ai testé en ajoutant le NOM à la fin de la saisie et effectivement le tri n'intervient qu'à ce moment là Mais j'ai peur d'oublier car par habitude les données sont rentrées au fur et à mesuer dans l'ordre, à voir sur le temps et si je n'ai pas de meilleure solution.

J'ai également essayé de rajouter tes lignes dans les codes de mes boutons, mais il faut pour que le tri se fasse, appuyer à chaque fois sur la touche F2 du clavier. Ne pourrait on pas mettre ce code plutôt dans le code de la feuille "liste participants" ?

Je ne sais pas si tu avais vu mon post au dessus à cause de mes erreurs de manipulations, mais je me demandais si on pouvait demander à faire le tri que lorsque la colonne V ou W étaient remplies d'une X?

D'autre part, lorsque je supprime une ligne dans la feuille "liste participants" les modifications ne se font pas dans la feuille "base". Et idem si je supprime une ligne dans la feuille "Base" il n'y a aucune incidence dans la feuille "lise participants", et si je le fait manuellement dans les deux feuilles, le numéro Id n'est pas remis à jour.

Je te joins le fichier "suivi ateliers" ainsi que le fichier sources1 qui correspond au bouton "MAJ Mtp".

pour info -> - j'ai remis le code tri dans les modules 2 et 4 (boutons) : tout se passe normalement pas de décalage
- j'ai enlevé celui qui était dans la feuille "liste participants", pour l'instant je fait le tri basique avec la fonction "Trier"dans le menu excel "Données" lorsque je rentre un contact sans passer par les boutons.

Staple : j'ai rajouté ta ligne dans les codes de mes deux boutons mais je n'ai pas vu de différence, je les ai positionnées juste en dessous de Sub Coller().

Merci à vous pour votre aide.

A bientôt pour vous lire.

Bonne soirée.

Lurdes
 

Pièces jointes

  • suivi ateliers avec ID - 29-10 vierge.xlsm
    224.7 KB · Affichages: 53
  • suivi ateliers avec ID - 29-10 vierge.xlsm
    224.7 KB · Affichages: 49
  • sources1.xlsm
    10.2 KB · Affichages: 54
  • suivi ateliers avec ID - 29-10 vierge.xlsm
    224.7 KB · Affichages: 44
Dernière édition:

Yaloo

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

Bonjour Loulou, le forum,

Je ne sais pas si tu avais vu mon post au dessus à cause de mes erreurs de manipulations, mais je me demandais si on pouvait demander à faire le tri que lorsque la colonne V ou W étaient remplies d'une X?
Oui, j'avais vu ton post, et non ce n'est pas nécessaire.

D'autre part, lorsque je supprime une ligne dans la feuille "liste participants" les modifications ne se font pas dans la feuille "base". Et idem si je supprime une ligne dans la feuille "Base" il n'y a aucune incidence dans la feuille "lise participants", et si je le fait manuellement dans les deux feuilles, le numéro Id n'est pas remis à jour.
En effet, les données resteront dans la feuille "Base", il ne faut pas les supprimer, une base est remplie au fur et à mesure, que l'on enlève ou non des données dans les autres feuilles. Si tu supprimes une ligne dans la feuille "Liste participants" les lignes du dessous sont remontées. C'est bien le but de la manœuvre ;). Si tu veux réellement supprimer la ligne dans la base, il faut créer un bouton avec suppression de la ligne dans "Liste participants" puis dans la feuille Base, faire une recherche de l'identifiant et supprimer la ligne.

Staple : j'ai rajouté ta ligne dans les codes de mes deux boutons mais je n'ai pas vu de différence, je les ai positionnées juste en dessous de Sub Coller().
La ligne que t'a fait rajouté Staple s'appelle la déclaration des variables, une variable peut être un chiffre, une lettre, un classeur, une feuille, un tableau etc... Lorsque tu déclares les variables, un type est attribué à cette variable, tu ne peux pas, dans ta macro, lui donner un type différent. Par exemple, derlig as Long (ou derlig&) ne peut recevoir qu'un chiffre (puisque c'est un N° de ligne) si tu essaies de lui mettre une valeur en lettre, tu auras une erreur. Je te mets en pièce jointe un fichier de myDearFriend! très intéressant pour comprendre les variables.

J'ai pris le problème de façon différente, pour recevoir les données de ton fichier source :
- Activation de la feuille Base
- Collage des valeurs de Source dans la feuille Base
- Attribution d'un N° d'identifiant
- Collage de ce N° dans la feuille "Liste participants"
- Activation de cette feuille
- Avec l'activation, les données de Base sont collées dans cette feuille

A te relire

Martial
 

Pièces jointes

  • Variable.pdf
    14.8 KB · Affichages: 46
  • suivi ateliers avec ID - 29-10 vierge.xlsm
    223.1 KB · Affichages: 45
  • Variable.pdf
    14.8 KB · Affichages: 46
  • suivi ateliers avec ID - 29-10 vierge.xlsm
    223.1 KB · Affichages: 52
  • Variable.pdf
    14.8 KB · Affichages: 41
  • suivi ateliers avec ID - 29-10 vierge.xlsm
    223.1 KB · Affichages: 47

loulouange

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

Bonjour Martial, bonjour le forum,

Tout d'abord un grand merci à toi !!! quel super boulot que tu as réalisé, j'ai un outil de travail vraiment tip top à présent ! :eek:

Je ne suis pas venue plus tôt car j'ai rencontré des galères avec le fichier mais cela semble être rentré dans l'ordre.

En effet, je ne sais pas pourquoi par moment la macro ne voulait pas reconnaître les deux fichiers sources, j'avais ce message àa chaque fois : "Erreur d'exécution 9, l'indice n'appartient pas à la sélection".

J'ai relancé plusieurs fois les fichiers, redémarré etc... et enfin cela à fonctionné. Et puis deux jours après j'ai voulu y retravailler et rebelotte encore ce message, j'ai regardé sur le net à quoi cela pouvait correspondre , j'ai même enlevé l’extension *.xlsm" dans la macro et là hazard ou pas cela a fonctionné.
C'est vraiment bizarre, là j'ai fait un test en remettant l'extension et ça fonctionne aussi, est ce normal ? J'espère que je ne vais pas avoir ce genre de galère lorsque je m'en servirais sur mon poste au boulot.

Merci pour le fichier PDF, je l'ai lu avec attention même si pour moi c'est encore difficile à assimiler. Mais j'ai bien compris l'intérêt de mettre des variables, et ce notamment pour optimiser les ressources mémoires.

Ceci dit, je pense que je dois avoir un problème justement dans une de mes feuilles car lorsque je l'active la macro prend du temps pour afficher le résultat, et justement dans cette feuille il y a en début de macro une ligne avec des variables, alors je ne sais pas d'où vient le problème.

Cela concerne la feuille "Affectation"

Je te joins le fichier, comme tu pourras le voir j'ai déjà 180 stagiaires, ici j'ai enlevé les noms et j'ai mis quelques noms fictifs. et rien qu'avec ça l'affichage est vraiment long par rapport aux autres feuilles.

Dans l'attente de te lire.

Loulou
 

Pièces jointes

  • suivi ateliers avec ID - 29-10 vierge (Martial).xlsm
    271.3 KB · Affichages: 46
  • suivi ateliers avec ID - 29-10 vierge (Martial).xlsm
    271.3 KB · Affichages: 42
  • suivi ateliers avec ID - 29-10 vierge (Martial).xlsm
    271.3 KB · Affichages: 39

Discussions similaires

Réponses
15
Affichages
665
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 722
Messages
2 081 930
Membres
101 843
dernier inscrit
Thaly