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
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
________________________
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

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 :

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 ?

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 :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.