[R] Excel : Pb avec ExcelSheeetList

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ltrautoit
Niveau 4
Niveau 4
Messages : 52
Enregistré le : mer. 23 mars 2011 15:19
Status : Hors ligne

[R] Excel : Pb avec ExcelSheeetList

#1

Message par ltrautoit »

Bonjour,

Je souhaite utiliser la fonction "_ExcelSheetList" dans ma macro, mais je constate le problème suivant :

Si j'utilise un nouveau fichier excel (ouvert avec _ExcelBookNew), réponse OK, j'ai bien la liste des feuilles excel.

Code : Tout sélectionner

Local $oExcel = _ExcelBookNew() 
    $aArray = _ExcelSheetList($oExcel)
_arraydisplay($aArray)
 
Si j'utilise un fichier excel déja ouvert (que je rattache avec succès via _ExcelBookAttach), j'ai une erreur de la part de l'UDF Excel :
Line 1055
Local îTemp = $oExcel.ActiveWorkbook
Error : The requested action with this object has failed
Autoit v3.3.6.1
UDF Excel : La version d'origine incluse (1.5, je crois)

Auriez-vous idées, pistes, codes pour résoudre cela ?

Merci.

Edit : Correction du titre (avant de me faire tirer les oreilles)
Modifié en dernier par ltrautoit le jeu. 29 mars 2012 11:31, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Excel : Pb avec ExcelSheeetList

#2

Message par TopXm »

Salut,

Il est bien indiqué dans l'aide de _ExcelSheetList

<<An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()>>

J'ai fait l'essai et en effet avec un _ExcelBookAttach le ExcelSheetList plante :
► Afficher le texte
ltrautoit
Niveau 4
Niveau 4
Messages : 52
Enregistré le : mer. 23 mars 2011 15:19
Status : Hors ligne

Re: [R] Excel : Pb avec ExcelSheeetList

#3

Message par ltrautoit »

Bonjour,

C'était justement ca le problème que j'aurais souhaité résoudre.

Par curiosité j'aurais bien voulu savoir le pourquoi du comment, ceci dit j'ai trouvé une solution palliative.

Pb Fermé.
tioxine
Niveau 3
Niveau 3
Messages : 39
Enregistré le : sam. 14 janv. 2012 17:00
Status : Hors ligne

Re: [R] Excel : Pb avec ExcelSheeetList

#4

Message par tioxine »

Bonjour,

Il y a un bug dans le plugin Excel
En effet , quand on utilise _ExcelBookAttach , l'objet ramené est $o_Result.Application.Workbooks , soit un Workbook , alors que dans le create, l'objet est juste .Application

Hors, la fct _ExcelSheetList présuppose que l'objet est de type .Application, ce qui est faux si on vient d'un attach ou d'un open

Code : Tout sélectionner

Func _ExcelSheetList($oExcel)
    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    Local $iTemp = $oExcel.ActiveWorkbook.Sheets.Count
    Local $aSheets[$iTemp + 1]
    $aSheets[0] = $iTemp
    For $xx = 1 To $iTemp
        $aSheets[$xx] = $oExcel.ActiveWorkbook.Sheets($xx).Name
    Next
    Return $aSheets
EndFunc   ;==>_ExcelSheetList
 

Donc, correction du code

Code : Tout sélectionner

    Local $iTemp
    Local $obj

    If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
    Local $s_Name = String(ObjName($oExcel))
    If ($s_Name <> "_Workbook") Then
        $obj = $oExcel.ActiveWorkbook
    Else
        $obj = $oExcel
    EndIf
    $iTemp = $obj.Sheets.Count
    Local $aSheets[$iTemp + 1]
    $aSheets[0] = $iTemp
    For $xx = 1 To $iTemp
        $aSheets[$xx] = $obj.Sheets($xx).Name
    Next
    Return $aSheets
 
A+
Répondre