[R] Lire une cellule Excel

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

[R] Lire une cellule Excel

#1

Message par aikiox »

Bonjour,

Cela fait plusieurs jours que je cherche a lire une cellule Excel...
J'ai trouvé énormément de chose mais en vin...
Cela m’aidera pour la création d'un script...

Par exemple :

$cellule = lire cellule d'un Excel
run("notepad.exe")
Winwaitactive("Sans")
send($cellule)


Cela m’aidera à comprendre le fonctionnement et le mettre en pratique dans mon script...

Cordialement
Romain
Modifié en dernier par aikiox le lun. 26 avr. 2010 22:55, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire une cellule Excel

#2

Message par jbnh »

Voici un exemple pour lire une cellule excel :

Code : Tout sélectionner

Local $oExcel = ObjCreate("Excel.Application")
With $oExcel
    .SheetsInNewWorkbook = 1
    .Visible = 1
    .WorkBooks.Add
    .ActiveWorkbook.Worksheets(1).Name = "ONGLET_SOURCE"
    .ActiveWorkbook.Worksheets(1).Cells(1,1) = "Salut"
    $test =  $oExcel.Activesheet.Cells(1,1).Value
    msgbox(0,"",$test)
EndWith
Pour lire la cellule d'un fichier déjà existant -> ObjGet
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [R] Lire une cellule Excel

#3

Message par aikiox »

Bonjour,

Merci de ta reponse :)
Je met en résolu mais je pourrais réouvrir si j'ai une question sur le meme sujet?

Cordialement
Romain
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire une cellule Excel

#4

Message par jbnh »

Pour une nouvelle question, c'est a dire qui ne traite pas sur "lire une cellule excel", ouvrez un nouveau topic ;)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [..] Lire une cellule Excel

#5

Message par aikiox »

D'accord,

Merci pour les precisions.


J'ai regardé le code, c'est parfais mais je cherche à lire dans un fichier deja existant...

j'ai fais cela mais erreur :
► Afficher le texte
Cordialement
Romain
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire une cellule Excel

#6

Message par jbnh »

Code : Tout sélectionner

#include <Excel.au3>
$fichier = @ScriptDir & "\test.xls"


_ExcelBookOpen($fichier)
$oExcel = ObjGet("","Excel.Application")  
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1

$test = $oExcel.Activesheet.Cells(1,1).Value
$test2 = $oExcel.Activesheet.Cells(1,2).Value
msgbox(0,"",$test&" "&$test2)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [..] Lire une cellule Excel

#7

Message par aikiox »

Bonjour,

GENIAL !

Maintenant, j'ai mon fichier excel avec trois collone :
  • Nom
  • Prenom
  • Fonction
________________________
Nom | Prenom | Fonction |
-----------------------------


Il y a cinq fonction possible :
  • Administration
  • Direction
  • Production 1
  • Production 2
  • Informatique
J'aimerais que le script incremente de 1 jusqu'a 100, voir 200..., execute la fonction puis passe a la ligne suivante...

Voici le code que j'ai effecuté mais je connais très mal les boucles meme en regardant le tutoriel...

Code : Tout sélectionner

[spoiler=][blink]#include <Excel.au3>
$fichier = @ScriptDir & "\test.xls"


_ExcelBookOpen($fichier)
$oExcel = ObjGet("","Excel.Application")
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1

for $i = 0 to 100 step 1
$nom = $oExcel.Activesheet.Cells(1+$1,1).Value
$prenom = $oExcel.Activesheet.Cells(1+$1,2).Value
$Fonction = $oExcel.Activesheet.Cells(1+$1,3).Value


select
case    $Fonction = "Direction"
    MsgBox(0,"Direction", $prenon&" "&$nom&" fait partie de la Direction")

Case $Fonction = "Administration"
    MsgBox(0,"Direction", $prenon&" "&$nom&" fait partie de la Administration")

case $Fonction = "Production 1"
    MsgBox(0,"Direction", $prenon&" "&$nom&" fait partie de la Production 1")

case $Fonction = "Production 2"
    MsgBox(0,"Direction", $prenon&" "&$nom&" fait partie de la Production 2")

case $Fonction = "Informatique"
    MsgBox(0,"Direction", $prenon&" "&$nom&" fait partie de la Informatique")

EndSelect
Next[/blink][/spoiler]
Cordialement
Romain
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [R] Lire une cellule Excel

#8

Message par aikiox »

Code : Tout sélectionner

[spoiler=]#include <Excel.au3>
$fichier = @ScriptDir & "\test.xls"


_ExcelBookOpen($fichier)
$oExcel = ObjGet("","Excel.Application")  
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1

for $i = 0 to 100 step 1
$nom = $oExcel.Activesheet.Cells(1+$i,1).Value
$prenom = $oExcel.Activesheet.Cells(1+$i,2).Value
$fonction = $oExcel.Activesheet.Cells(1+$i,3).Value


select
case    $fonction = "Direction"
    MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Direction")

Case $fonction = "Administration"
    MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Administration")

case $Fonction = "Production 1"
    MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Production 1")

case $Fonction = "Production 2"
    MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Production 2")

case $Fonction = "Informatique"
    MsgBox(0,"Direction", $prenom&" "&$nom&" fait partie de la Informatique")

EndSelect
Next[/spoiler]
Bonjour,

J'ai trouvé l'erreur... PB de variable...

Merci je le met en [R]

Cordialement
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Lire une cellule Excel

#9

Message par Tlem »

aikiox a écrit :Merci je le met en [R]
La balise [R] est à placer dans le titre de votre premier message.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [R] Lire une cellule Excel

#10

Message par aikiox »

Manipulation effecuté
FF2Damien
Niveau 1
Niveau 1
Messages : 14
Enregistré le : jeu. 17 mars 2016 15:24
Status : Hors ligne

Re: [R] Lire une cellule Excel

#11

Message par FF2Damien »

Bonjour a tous,
Je me permet de réouvrir ce topic, car le scrip ne semble pas fonctionner pour moi.
J'ai tout bêtement collé le script de jbnh :

Code : Tout sélectionner

#include <Excel.au3>
$fichier = @ScriptDir & "\test.xls"


_ExcelBookOpen($fichier)
$oExcel = ObjGet("","Excel.Application")  
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1

$test = $oExcel.Activesheet.Cells(1,1).Value
$test2 = $oExcel.Activesheet.Cells(1,2).Value
msgbox(0,"",$test&" "&$test2)

Mais les phrases on changées depuis :
_ExcelBookOpen n'existe plus,
on a maintenant
_Excel_BookOpen

et ca ne fonctionne tjs pas pour moi. J'ai l'erreure suivante :

Code : Tout sélectionner

_Excel_BookOpen($fichier)
^ ERROR

le fichier test.xls est bien dans le meme répertoire que la ou j'exétute le code.
Il contient 5 colonne et 5 lignes avec des chiffre au hasard pour tester...

QQun peut t'il m'aider svp ?
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1037
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [R] Lire une cellule Excel

#12

Message par walkson »

Bonjour,
C'est une trés mauvaise idée de ré-ouvrir une post vieux de 2010 :wink:

Code : Tout sélectionner

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Create application object
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox(16, "Excel UDF: _Excel_BookOpen Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; *****************************************************************************
; Open an existing workbook and return its object identifier.
; *****************************************************************************
Local $sWorkbook = @ScriptDir & "\AA.xlsx"
Local $oWorkbook = _Excel_BookOpen($oExcel, $sWorkbook, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Workbook '" & $sWorkbook & "' has been opened successfully." & @CRLF & @CRLF & "Creation Date: " & $oWorkbook.BuiltinDocumentProperties("Creation Date").Value)
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1

$test = $oExcel.Activesheet.Cells(1,1).Value
$test2 = $oExcel.Activesheet.Cells(1,2).Value
msgbox(0,"",$test&" "&$test2)

Le chemin d'Excel est à adapter
Sinon, regardez l'aide, il y a de nombreux exemples (le début du script utilise _Excel_BookOpen de l'aide)
[Edit]
Je ne vois pas trop l’intérêt de $oExcel.SheetsInNewWorkbook

Code : Tout sélectionner

 SheetsInNewWorkbook  Cette propriété renvoie ou définit le nombre de feuilles que Microsoft Excel insère automatiquement dans les nouveaux classeurs. Type de données Long en lecture-écriture.
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Répondre