Bonjour,
Suite au message de David Stodolsky, je vous fait part de la facon dont
j'ai resolu la question du lien entre excel et ADE4.
Pour me faciliter l'exportation rapide de donnees de excel vers ADE, j'ai
ecrit un ensemble de macro, qui, dans mon cas, fonctionnent assez bien. Je
peux le faire parvenir sur demande ou la mettre a disposition sur le site
ADE. Elle fonctionne avec Excel 97 sous Windows 95 en francais (je ne l'ai
pas teste sur d'autres versions d'excel, d'autres plateformes (mac) ou
d'autres langues...).
Je peux ainsi profiter des fonctionnalites d'excel pour faire des tris,
selections, calculs, etc. et basculer rapidement vers ADE.
Des modules d'ADE font les memes operations (mais pas toutes), cependant,
dans l'ensemble, je trouve que le travail sous excel est plus aise pour ces
operations de base.
Je n'ai pas vocation a developper ce genre d'outils, il est donc imparfait
a plusieurs points de vue, mais je n'envisage pas pour l'instant d'en faire
des ameliorations substancielles. Le principe me parait assez simple pour
que chacun puisse eventuellement l'adapter a ces besoins, ou le corriger.
Je serais cependant tres interesse de savoir si cela fonctionne sur
d'autres configurations et quels sont les problemes rencontres.
Le principe est le suivant:
Depuis la feuille excel contenant les donnees a exporter, on lance la macro
"convert".
Une sous-procedure (selecdata) selectionne les donnees, c'est a dire la
matrice partant du coin haut gauche allant jusqu'a la premiere ligne vide
visible et la premiere colonne vide visible. Cette place rectangulaire est
nommee "donnee".
Elle est copiee dans un nouveau classeur temporaire. Seules les cellules
visibles sont copiees, donc on peut masquer des lignes ou des colonnes dans
la feuille de depart si on ne veut pas les exporter, sans avoir a les
supprimer manuellement. Les valeurs remplacent les formules de la feuille
de depart. La feuille collee prend le nom de la feuille de depart; il faut
un nom different du nom par defaut (feuil1, feuil2, etc.) qui cause une
erreur, et pas trop "complique" (caracteres exotiques)
!!! Une procedure elimine dans la feuille collee (temporaire), les lignes
et colonnes qui sont nulles ou constantes. Ainsi, le tableau sera toujours
apte a une analyse qui ne supporte pas ce type de variable ou d'individu.
Par contre, pour d'autres analyses (je pense a richness cumulative curves
par exemple), cette option doit etre eliminee sous peine de perdre des
especes.
Ensuite, le tableau est decompose en matrice, entete de ligne (1 colonne),
entete de colonne (1?ligne), qui sont copiees dans des feuilles
temporaires.
La macro demande de saisir le repertoire et le nom du fichier de sortie
(nom de feuille par defaut, ou moins de 7 caracteres).
'3 fichiers textes tabules sont crees:
'Celui termine par la lettre M est la matrice.
(Il peut etre converti par texttobin)
'Celui termine par la lettre L contient les entetes de ligne
'Celui termine par la lettre C contient les entetes de colonnes
'Ces 2 derniers sont utilisables pour legender des graphiques produits
par ADE.
Les classeurs et feuilles temporaires sont detruits.
Texttobin est lance automatiquement et converti la matrice en fichier
binaire avec meme nom
Cette partie fonctionne plus ou moins bien..., surtout s'il se produit un
premier plantage. Texttobin est ferme, mais il reste la fenetre demandant
si l'on veut sauvegarder le fichier texte, elle devra etre fermee a la
main...pour l'instant.
!!!! Avant d'executer cette partie du module, il faut modifier manuellement
la ligne qui determine le chemin du programme texttobin (texttobinpath).
Une partie de la macro execute un module d'ADE (texttobin) directement
depuis excel, en envoyant des commandes sous forme de raccourcis clavier.
Bien que tres rudimentaire et parfois "aleatoire", cette facon de faire est
toujours plus rapide que l'operation manuelle. Je suis parvenu a enchainer
la conversion de fichier vers ADE, l'execution d'une AFC, la creation des
graphiques (F1XF2) et leur incorporation dans la feuille de depart d'excel
en tant qu'image, sans avoir a intervenir. Cependant, l'ensemble des
procedures est un peu "fragile". Lorsqu'on manipule des donnees sous
differents points de vue, dans une phase d'exploration, la possibilite de
repeter rapidement ce genre de suite d'operation est un avantage
indeniable. Est-ce qu'il ne serait pas possible, dans le long terme,
d'envisager une programmation des modules qui permette de leur faire passer
des arguments directement dans la ligne de commande afin de pouvoir
concevoir des "meta-modules" formant une chaine d'operation utilisees
frequement, mais specifique a l'utilisateur. Il ne s'agit pas en effet de
tomber dans le logiciel "presse bouton".
Marc Deconchat INRA-URSAD/SEBSO BP 27 F-31320 Castanet
Tel:+ 33 (0) 5 61 28 52 55 Fax: +33 (0) 5 61 73 20 77
Email: deconcha@telesad.toulouse.inra.fr
This archive was generated by hypermail 2b30 : Sat Feb 10 2001 - 10:21:55 MET