Page 1 sur 1
[R] Lire une cellule Excel
Posté : dim. 25 avr. 2010 12:28
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
Re: [..] Lire une cellule Excel
Posté : dim. 25 avr. 2010 14:08
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
Re: [R] Lire une cellule Excel
Posté : dim. 25 avr. 2010 14:28
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
Re: [..] Lire une cellule Excel
Posté : dim. 25 avr. 2010 14:42
par jbnh
Pour une nouvelle question, c'est a dire qui ne traite pas sur "lire une cellule excel", ouvrez un nouveau topic

Re: [..] Lire une cellule Excel
Posté : dim. 25 avr. 2010 15:08
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
#include <Excel.au3>
$fichier = @ScriptDir & "\test.xls"
$oExcel = ObjCreate("Excel.Application")
_ExcelBookOpen($fichier)
$oExcel.SheetsInNewWorkbook = 1
$oExcel.Visible = 1
$oExcel.WorkBooks.Add
$test = $oExcel.Activesheet.Cells(1,1).Value
$test2 = $oExcel.Activesheet.Cells(1,2).Value
msgbox(0,"",$test&" "&$test2)
Cordialement
Romain
Re: [..] Lire une cellule Excel
Posté : dim. 25 avr. 2010 15:28
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)
Re: [..] Lire une cellule Excel
Posté : dim. 25 avr. 2010 19:46
par aikiox
Bonjour,
GENIAL !
Maintenant, j'ai mon fichier excel avec trois collone :
________________________
Nom | Prenom | Fonction |
-----------------------------
Il y a cinq fonction possible :
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
Re: [R] Lire une cellule Excel
Posté : dim. 25 avr. 2010 21:52
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
Re: [R] Lire une cellule Excel
Posté : dim. 25 avr. 2010 22:19
par Tlem
aikiox a écrit :Merci je le met en [R]
La balise [R] est à placer dans le titre de votre premier message.
Re: [R] Lire une cellule Excel
Posté : lun. 26 avr. 2010 22:52
par aikiox
Manipulation effecuté
Re: [R] Lire une cellule Excel
Posté : jeu. 17 mars 2016 15:33
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 :
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 ?
Re: [R] Lire une cellule Excel
Posté : ven. 18 mars 2016 09:41
par walkson
Bonjour,
C'est une trés mauvaise idée de ré-ouvrir une post vieux de 2010
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.