Page 1 sur 1

[..] Recherche valeurs dans Excel

Posté : mer. 21 oct. 2015 08:04
par Aud42
Bonjour à tous,

Je suis une toute nouvelle utilisatrice d'AutoIt, et j'ai besoin de votre aide.
Dans un cadre professionnel, il faut que je reprenne un script d'un ancien collègue afin de l'enrichir. Mon problème est le suivant :
J'ai un fichier excel avec 6 colonnes. Je dois donc ouvrir ce fichier, le parcourir, et faire une recherche sur les 3 premières colonnes et retourner la valeur de la colonne 6 dans un autre fichier excel.
Ex : Ma colonne A est nommée ID (numérique)
Ma colonne B est nommée Date (date)
Ma colonne C est nommé Code (numérique)

J'ai besoin de trouver dans ce fichier ID=1, Date="date du jour", et code="2", puis récupérer la colonne 6.

Je ne sais absolument pas comment m'y prendre. Quelle fonction me permettrait de faire ça?

Merci pour votre aide.

Re: [..]Recherche valeurs dans Excel

Posté : mer. 21 oct. 2015 09:15
par jchd
Les fonctions _Excel_* par exemple :wink:

Bienvenue en Hexagonie autoitienne.

Re: [..]Recherche valeurs dans Excel

Posté : mer. 21 oct. 2015 09:20
par Aud42
Merci ;)

J'avais pensé à la fonction _Excel_RangeRead mais je ne sais pas comment faire pour rechercher sur mes 3 colonnes simultanément!
Peut être plus une fonction style filtre?!

Re: [..] Recherche valeurs dans Excel

Posté : jeu. 22 oct. 2015 16:52
par Oversid3
Bonjour.

Pourrais-tu nous fournir le code que tu as déjà fait ?

Sinon j'utilise une version modifiée de l'UDF de base : http://www.beetxt.com/3uW/


Sinon, dans l'idée voila ce qu'il faut faire :

Code : Tout sélectionner

Ouvrir le fichier Excel 
$Excel=_ExceBookOpen($path)

Lire la colonne A B et C et les stocker dans une array
$ColonneA=_ExcelReadArray($Excel, 2, 1, 300, 1)
$ColonneB=_ExcelReadArray($Excel, 2, 2, 300, 1)
$ColonneC=_ExcelReadArray($Excel, 2, 3, 300, 1)

Stocker aussi la colonne 6
$Colonne6=_ExcelReadArray($Excel, 2, 6, 300, 1)

Il te reste a faire une boucle avec des conditions

For $i=0 to Ubound($ColonneA) ;
If $ColonneA[$i]='ta valeur' Then
     If $ColonneB[$i]='Date du jour' Then
          If $ColonneC[$i]='2' Then
               ;On copie le tout dans un fichier de result, aprés libre a toi d'en faire ce que tu veux
               FileWrite(@Scriptdir&"\result.txt", $ColonneA[$i]&" "&$ColonneB[$i]&" "&$ColonneC[$i]&" "&$Colonne6[$i])
Endif
Endif
Endif

Next