[R] Manipuler un fichier excel déjà ouvert

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Nairod
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 16 août 2008 00:51
Status : Hors ligne

[R] Manipuler un fichier excel déjà ouvert

#1

Message par Nairod »

Bonjour Amis Autoitiens,

Me voici dans une situation un peut pénible car ceci fait environ 2 jours si mes souvenirs sont exactes que je recherche une solution à mon problème.

Mon problème :
- J'ai un fichier excel qui est ouvert, je ne connais pas son nom, je ne connais pas son chemin, c'est juste un workbook excel d'ouvert.
- Je souhaite manipuler ce fichier excel avec les attributs classiques : $oExcel.Activesheet.Cells(1,2).Value
- Des tones de Forum existent sur la manière de créer un nouveau workbook mais rien sur un fichier déjà ouvert dont on a aucune info.

Mon code :

Code : Tout sélectionner

#include <Excel.au3>

sleep(3000)
$choix = msgbox(4,"Nouveau Excel ?","Souhaitez vous ouvrir un nouveau fichier Excel ?") ; La je me demande si un fichier Excel est déjà ouvert ?
sleep(1000)
Switch $choix
    Case 6 ; Je crée un nouveau fichier excel (attention remplacez les ... par le chemin complet du fichier
        ;Emplacement du fichier excel a lire
         Local $fichier = "C:\...\Vierge.xlsx"
         $oExcel = _ExcelBookOpen($fichier, 0) ; On ouvre le fichier Excel
         WinWaitActive("[CLASS:Excel]", "", 1)
         _ExcelSheetActivate($oExcel, "Infos") ; on se positionne sur la feuille Excel qui s'appelle: Mails
         $oExcel.Visible = 1
         msgbox(0,"Continuer ?","Vous devez compléter le fichier Excel avant de continuer.")
         sleep(3000)
; ------------------------------------------------ ICI -------------------------------------------
      Case 7 ; J'utilise un fichier excel déjà ouvert, dont je n'ai aucune info pas le nom, ni le chemin, rien.
         $oExcel = ObjCreate("Excel.Application")
         _ExcelBookOpen($oExcel, @TempDir , "xlsx", 0, 1)
         _ExcelSheetActivate($oExcel, "Infos")
         $oExcel.Visible = 1
; ------------------------------------------------------------------------------------------------
EndSwitch

$B2 = $oExcel.Activesheet.Cells(1,2).Value
$B3 = $oExcel.Activesheet.Cells(3,1).Value

MsgBox(1,"text de retour",$B2 & $B3)
Voilà, merci pour votre futur aide.
Et que Autoit vous bénisse
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Manipuler un fichier excel déjà ouvert

#2

Message par mikell »

Regarde l'exemple du fichier d'aide pour ObjGet (dans Function Reference > Obj/COM Management) :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Nairod
Niveau 1
Niveau 1
Messages : 7
Enregistré le : sam. 16 août 2008 00:51
Status : Hors ligne

Re: [R] Manipuler un fichier excel déjà ouvert

#3

Message par Nairod »

Youpiii ! ^^
Merci pour ton aide, il suffit par fois de quelques mots pour rendre quelqu'un heureux : )

Voici le code mis à jour pour nos futurs amis lecteurs.

Code : Tout sélectionner

#include <Excel.au3>

sleep(3000)
$choix = msgbox(4,"Nouveau Excel ?","Souhaitez vous ouvrir un nouveau fichier Excel ?")
sleep(1000)
Switch $choix
    Case 6 ; je crée un fichier excel
        ;Emplacement du fichier excel a lire
         Local $fichier = "C:\...\Vierge.xlsx"
         $oExcel = _ExcelBookOpen($fichier, 0) ; On ouvre le fichier Excel
         WinWaitActive("[CLASS:Excel]", "", 1)
         _ExcelSheetActivate($oExcel, "Infos") ; on se positionne sur la feuille Excel qui s'appelle: Mails
         $oExcel.Visible = 1
         msgbox(0,"Continuer ?","Vous devez compléter le fichier Excel avant de continuer.")
         sleep(3000)
      Case 7 ; J'ai déjà un fichier excel d'ouvert
         sleep(3000)
         $oExcel = ObjGet ( "" , "Excel.Application" )
         sleep(1000)
         _ExcelSheetActivate($oExcel, "Infos")
         $oExcel.Visible = 1
EndSwitch

$B2 = $oExcel.Activesheet.Cells(1,2).Value
$B3 = $oExcel.Activesheet.Cells(3,1).Value

MsgBox(1,"text de retour",$B2 & $B3)
Bon code à tous,
Répondre