[R] Lire dans un fichier Excel

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lutin44
Niveau 2
Niveau 2
Messages : 19
Enregistré le : jeu. 13 déc. 2007 14:38
Localisation : Nantes
Status : Hors ligne

[R] Lire dans un fichier Excel

#1

Message 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
Fichiers joints
planning-28_du_18_fev_2008_au_10_mai_2008.zip
le fichier en question est zippé car le forum n'accepte pas le .xls
(9.53 Kio) Téléchargé 367 fois
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..]Lire dans un fichier Excel

#2

Message 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 :(
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..]Lire dans un fichier Excel

#3

Message 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
A+
lutin44
Niveau 2
Niveau 2
Messages : 19
Enregistré le : jeu. 13 déc. 2007 14:38
Localisation : Nantes
Status : Hors ligne

Re: [..] Lire dans un fichier Excel

#4

Message 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
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Lire dans un fichier Excel

#5

Message 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
A+
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [..] Lire dans un fichier Excel

#6

Message 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é ?
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Lire dans un fichier Excel

#7

Message 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+
A+
lutin44
Niveau 2
Niveau 2
Messages : 19
Enregistré le : jeu. 13 déc. 2007 14:38
Localisation : Nantes
Status : Hors ligne

Re: [..] Lire dans un fichier Excel

#8

Message 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
Répondre