Bonjour François,

Ça alors je n'en attendais pas tant!!!
Je vais maintenant essayer de comprendre le fichier .bas et voir si j'arrive à finaliser tout ça.
Si j'ai d'autres questions, promis, je change de forum.
Merci mille fois de ton aide.

Nicole de Bordeaux.





[EMAIL PROTECTED] a écrit :
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 prog@fr.openoffice.org

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]

Répondre à