Page 1 sur 1

[R] Lire dans un fichier Excel

Posté : ven. 14 mars 2008 11:47
par lutin44
Bonjour a tous,

Voici ce qui m'amene ,j'ai vu dans plusieurs poste ,certains utilisateurs du forum indiquer qu'ils allaient lire des données dans un fichier excel,or je ne trouve pas la fonction permettant de le faire dans l'aide d'AutoIt.
Et pour le script que je tente de développer,j'ai besoin de cette fonction pour aller lire dans le fichier ,des données suivant la date (jour/mois/année),
j'ai rattaché une copie dudit fichier (je l'ai un peu épuré dans un soucis de confidentialité,ca vient de mon taf tout de même)
je m'explique :
le script doit aller lire dans ce fichier ,la données se trouvant sur la ligne 17 (ma pomme),mais la colonne dépend de la date,et la ou ça se complique ,c'est que ca n'est pas régulier,le planning(puisque c'est de cela qu'il s'agit) est fait pour quelques semaine à l'avance seulement ,nous avons d'autres plannings d'avance pour les autres semaines ,et il peut changer a tout moment,il nous est publié sur intranet et n'est dispo qu'en lecture seule.

Le but étant que le script soit capable de retrouver la colone correspondant au jour pour savoir ,toujours dans cette même colonne ,où il doit aller lire l'info sachant qu'il a déja la ligne (la 17 ,ma pomme).
Enfin je tiens a préciser que pour moi la partie ouverture du fichier et obtention de la date est réglée

J'espère avoir été suffisement précis dans la description de mon besoin(n'hésitez pas de me demande plus d'infos)

Et surtout merci paravance de vos réponses éventuelles

Fred

Re: [..]Lire dans un fichier Excel

Posté : ven. 14 mars 2008 12:40
par ani
salut lutin44, moi je m'y connait pas, je connait l'extension sans plus.

Regarde dans l'aide d'autoit et fait une recherche sur le mot clé Excel, tu obtiendra 2/3 exemple, il faut créer un objet excel.application.

je vais testé mais je ne te promet rien, je ne sais pas si çà fonctionnera, car je ne dispose ni de word ni d'excel.

ps : C'est bien ce qui me semblait, faut excel , donc ... désolé je réplique pour rien :(

Re: [..]Lire dans un fichier Excel

Posté : ven. 14 mars 2008 21:02
par moutelous
Bonjour

Sur le site http://www.autoitscript.com/forum/index ... read+excel

Attached examples:
ExcelCOM_UDF_Example01.au3 --- Basic usage (create book, populate cells, read cells, save, quit)
ExcelCOM_UDF_Example02.au3 --- Basic usage (create book, populate table, add formulas, save, quit)

This post has been edited by Locodarwin: Jan 5 2008, 08:37 PM
Attached File(s)
Attached File ExcelCOM_UDF.au3 ( 138.3K ) Number of downloads: 1039
Attached File ExcelCOM_UDF_Example01.au3 ( 798bytes ) Number of downloads: 2589

Attached File ExcelCOM_UDF_Example02.au3 ( 2.29K ) Number of downloads: 2145

Re: [..] Lire dans un fichier Excel

Posté : mar. 18 mars 2008 09:37
par lutin44
Salut moutelous

En effet j'ai été voir et j'ai télécharger les fichiers d'example,il y a matière a travailler ,mais c'est assez complexe .....
En tout cas merci pour ta réponse ,je n'ai plus qu'a potasser cela

Re: [..] Lire dans un fichier Excel

Posté : mer. 19 mars 2008 16:02
par moutelous
Bonjour,

Je me permet de te proposer ceci en espérant que cela t'aidera :

Code : Tout sélectionner

#include <ExcelCom_UDF.au3>
DIM $array
Const $LigneDate = 5
Const $LigneLutin = 17
$Planning=_ExcelBookOpen("D:\Planning.xls",1)
If  @error > 0 Then
    msgbox(0, "ERREUR","ERREUR...."&@error)   
EndIf
$date = InputBox("Date", "Donnez la date à consulter ou conservez la date du jour",@MDAY&"/"&@MON&"/"&@YEAR)
If @error = 1 Then
    Exit
EndIf
$array=_ExcelFindInRange($Planning,$date,$LigneDate,1,$LigneDate,100)
If  @error > 0 Then
    msgbox(0, "ERREUR","ERREUR...."&@error)   
ElseIf $array[0][0]=0 Then
    msgbox(0, "Pas de correspondance","La date saisie est erronée")
    Exit
EndIf
$Colonne=$array[1][2]
$val = _ExcelReadCell($Planning, $LigneLutin, $Colonne)
If  @error > 0 Then
    msgbox(0, "ERREUR","ERREUR...."&@error)   
EndIf
msgbox(0, "Contenu de Ligne 17 Colonne"&$array[1][2] ,"Valeur = "&$val)
 
Ce code est à adapter en fonction de tes besoins.

Je suis parti du principe que les dates se trouvent toujours en ligne 5 du tableau et les infos te concernant se trouvent toujours en ligne 17.
Le fichier XLS que je viens lire se trouve sur D:\ et se nomme Planning.xls

J'ai également modifié l'UDF du site anglais pour qu'il colle avec notre version Francaise d'excel (sinon bug).

Ci joint l'UDF modifié

A+
ExcelCOM_UDF.au3
(138.3 Kio) Téléchargé 790 fois

Re: [..] Lire dans un fichier Excel

Posté : jeu. 20 mars 2008 17:38
par tolf
moutelous a écrit :J'ai également modifié l'UDF du site anglais pour qu'il colle avec notre version Francaise d'excel (sinon bug)
Excuse ma curiosité mais pourrais-tu STP indiquer quels genres de changements tu as effectué ?

Re: [..] Lire dans un fichier Excel

Posté : jeu. 20 mars 2008 21:06
par moutelous
Bonjour,

J'ai modifié une fonction que j'utilise dans le script proposé (je n'ai pas pris le soin de regarder le reste...).

Il s'agit de la fonction

Code : Tout sélectionner

_ExcelFindInRange
et en fait j'ai remplacé

Code : Tout sélectionner

$Temp1 = StringRegExp($aR1C1[$xx], "[RZ]([^CS]*)[CS](.*)",3)
 
par

Code : Tout sélectionner

$Temp1 = StringRegExp($aR1C1[$xx], "[L]([^C]*)[C](.*)",3)
pour éviter une plante lors du traitement de l'array ..

A+

Re: [..] Lire dans un fichier Excel

Posté : ven. 21 mars 2008 08:51
par lutin44
Salut moutelous,
c'est exactement cela :D :D ,j'ai juste testé rapidement ton script,mais c'est exactement ce à quoi je voulais arriver!!! :D :D .
Je vais le potasser un peu et l'adapter a mes besoin precis ,comme tu disais ,mais c'est super cool,par ce que jusqu'ici ,je ne te cache pas que je galérais avec les infos trouvées sur le forum anglophone d'AutoIt,j'avancais doucement ,mais je crois que je me compliquait la vie en regard de ce que tu as fait toi

Merci de ta participation ,je travaille ça

@+

Fred