Bonjour, Tu trouveras par ce lien http://www.cijoint.fr/cij100456873935140.zip Les fichiers transmis et un fichier .bas contenant une macro.
J'ai un petit peu modifié le fichier eval_main.odt pour 2 raisons : - adaptation de la ligne d'entête pour le nom de l'élève, - modification du tableau (initialement Tableau2) car sa structure était problèmatique pour offrir un traitement "aisé". La macro fournie lit l'ensemble des données du doc eval_tab.doc et reporte celles qui sont nécessaires dans le second document. NB : ceci n'est qu'une présentation (bien que fonctionnelle) de la possibilité évoquée de traiter directement des fichiers entre eux et évite d'avoir à recomposer des documents pour ne pas bousculer les habitudes ;) Tout n'est pas effectuer dans ce premier jet, ie : l'eimpression n'est pas gérée en directe. Espérant que celà corresponde au besoin. Pour traiter de ce cas, macro oblige, il conviendrait de poursuivre ce fil sur la liste [email protected] Francois Selon nimel <[EMAIL PROTECTED]>: > Francois Gatto a écrit : > > Bonjour, > > > > nimel a écrit : > >> Manuel NAUDIN a écrit : > >>> Le 16/12/06, nimel<[EMAIL PROTECTED]> a écrit : > >>>> Bonjour, > >>> > >>> Bonjour, > >>> > >>>> > >>>> Je patauge car je ne suis pas très calée ni en base de donnée ni en > >>>> macro etc... J'ai cherché un peu mais comme je ne sais pas trop comment > >>>> faire... > >>>> Si une bonne âme pouvait m'aider? > >>>> > >>>> J'ai un tableau de texte sous Word et il faut se servir des données > >>>> contenues pour faire un publipostage. Ceci doit être fait régulièrement > >>>> donc il faut en plus un automatisme minimum. > >>>> J'ai donc pensé passer par Base: transformation du tableau en texte, > >>>> etc. Je pourrais aussi passer par Calc et copier/coller. Pour ça je > >>>> peux > >>>> faire une macro, c'est encore à ma portée. > >>> > >>> Pour pouvoir se connecter avec Base, il faut effectivement que le > >>> tableau soit enregistré en .ods ou .xls > >>>> > >>>> Mais mon problème c'est le tableau d'origine. Les intitulés de colonnes > >>>> ne correspondent pas aux champs qu'il faudrait dans le publipostage. > >>>> En colonnes j'ai des noms d'élève, en ligne j'ai des descriptifs de > >>>> matières, et à l'intersection des 2 j'ai les notes. > >>>> Pour le publipostage il faut faire 1 lettre par élève, insérer les > >>>> descriptifs de matières et la note correspondante pour l'élève. > >>>> (pouff! dur à expliquer, sais pas si quelqu'un suit). > >>>> > >>>> Donc j'ai pensé générer une Base avec une table par nom d'élève et > >>>> autant de champs que de descriptifs de matières. Mais alors là, pour > >>>> faire ça en automatique ... je n'ai pas le début de l'idée de comment. > >>>> Si au moins quelqu'un pouvait me dire si c'est faisable et si je suis > >>>> sur la bonne piste de raisonnement. > >>> > >>> il me semble que le plus simple serait de permuter les lignes et > >>> colonnes du tableau, afin d'obtenir quelque chose de ce genre : > >>> > >>> nom math géo histoire > >>> durand 10,5 8 9 > >>> leroy 12 10 5 > >>> naudin 3 4 2 > >>> > >>> Ensuite avec Nouveau > Base de données : > >>> se connecter à une base existante > classeur > >>> > >>> Tu te retrouve avec une table dont les champs sont : > >>> nom > >>> math > >>> geo > >>> histoire > >>> > >>> et un enregistrement par élève. > >>> > >>> la base ainsi crée est liée dynamiquement au classeur. > >>> Si les données du classeur sont modifiées, lorsque tu rouvres la base, > >>> les modifications sont prises en compte. > >>> > >>> Cette base peut ensuite servir à créer ton publipostage. > >>> > >>> La seule macro à créer serait donc l'export de la table depuis word et > >>> la permutation des lignes et des colonnes. > >>>> > >>>> Nicole de Bordeaux. > >>>> > >>> Manuel > >> > >> > >> Bonsoir Manuel et merci de ta réponse. > >> Effectivement je sentais bien qu'il fallait remanier le tableau mais > >> c'est justement ce que je ne sais pas faire. > > > > Disons qu'en effet ce serait plus pratique ;) > > Car on peut supposer que le nombre d'élèves est supérieur au nombre de > > matières. Encore que dans certains cas ... > > > >> Et l'utilisateur ne veut pas changer son document original (ah! les > >> habitudes!). > > > > Là est toute la difficulté de la mise en place d'un nouveau système et > > de l'organisation ou réorganisation qui doit l'accompagner. > > > > Confronté depuis toujours à ce genre de problème, la réflexion doit > > porter sur les avantages et les inconvénients de l'adaptation soit de > > l'utilisateur, soit de l'outil informatique, soit des deux ;) > > > > Au cas présent, il me semble que tu pourrais mettre en place une > > solution informatisée trés souple, à savoir t'appuyer sur le document > > tel qu'il est (donc sans changer les habitudes de l'utilisateur). > > > >> En plus, là où je sèche c'est que même les matières sont des données > >> variables. Ça donne ça: > >> > >> Clément Sophie Kevin > >> S'organiser pour ...... 5 2 4 > >> Adapter son comportement... 6 3 1 > >> S'intéresser aux ... 2 5 3 > >> Comprendre les .... 1 6 2 > >> Etc... > >> > >> Ou plutôt après remaniement: > >> > >> NOM_ELEVE S'organiser pour ...... Adapter son comportement... > >> Clément 5 6 > >> Sophie 2 3 > >> Kevin 4 1 > >> > > > > Une macro pourra parfaitement récupérer l'intégralité des données > > présentent dans ce genre de tableau. > > > > La difficulté ne réside pas dans le traitement mais bien d'avantage dans > > la définition d'un mode opératoire s'appuyant sur le système existant > > et/ou nouvellement mis en place. > > > >> > >> > >> Ensuite il faut automatiser l'envoie d'une lettre avec Writer du genre: > >> > >> Voici les résultats du 2ème trimestre de votre enfant NOM_ELEVE : > >> > >> MATIERE_1 NOTE > >> MATIERE_2 NOTE > >> MATIERE_3 NOTE > >> MATIERE_4 NOTE > >> Etc.. > >> > >> Donc il faudrait pouvoir afficher le nom du champ dans le document de > >> fusion, mais est-ce possible? > > > > C'est tout à fait possible. Mais cela peut nécessiter quelques traitements. > > > >> > >> Alors si je résume: > >> J'exporte le tableau Word en fichier .txt par une macro > >> Je crée une base dans Base avec ce fichier .txt > >> Je permute lignes/colonnes => Mais comment??? > > > > Puisque macro il doit y avoir, autant qu'elle génère l'export dans un > > format txt ou csv après transposition de la matrice. > > > >> Je fait mon publipostage sous Writer avec les champs NOM_ELEVE, > >> MATIERE_x et affichage du nom du champ MATIERE_x (comment?). > >> > > > > Une macro doit lire/récupérer l'entête de la colonne (ou de la ligne) > > contenant l'intitulé de la matière traitée. > > > >> Bon, sur 4 étapes il n'y en a que 2 que je ne sais pas faire! > >> Merci aux courageux qui voudront bien s'intéresser à ce cas. > >> > > > > La difficulté ne tient pas tant de la conception d'une macro ou d'une > > base de données, mais bien plus de la modélisation des documents : > > - le doc source de données > > - la lettre-type. > > > > Connaissant la structure des deux, une macro relativement simple et ne > > faisant pas appel à des notions trés compliquées peut être mise ne place > > pour générer le publipostage. > > > > Peut-être pourrais-tu nous adresser un exemplaire du doc Word et du > > modèle de publipostage (lettre-type) ici : http://www.cijoint.fr/ > > > >> Nicole de Bordeaux. > >> > > > > Francois Gatto > > > Amis du jour, bonjour, > > Je l'ai dit, je suis pas douée en macro. Je sais en faire des simples en > enregistrement et que sous Microsoft mais je n'ai jamais touché ni à VB > ni aux macro sous OoO. Alors transposer une matrice de tableau sous Word > et récupérer une entête pour le moment c'est du chinois! Je veux bien > m'y mettre et chercher mais il me faudrait des pistes plus précises SVP. > > Je précise que ce n'est pas une utilisation professionnelle industrielle > mais un service pour un ami qui est instit et qui voudrait toucher un > peu du OoO. Il maîtrise bien les outils informatique et saura suivre une > procédure à partir du moment ou le plus gros du boulot est automatisé. > > J'ai mis les 2 fichiers demandés ici: > http://www.cijoint.fr/cij64906320335115.zip > > Nicole. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
