Page 1 sur 1

[R] Problème avec _ExcelWriteSheetFromArray

Posté : jeu. 21 oct. 2010 21:59
par Ladygeek
Salut,
Apres avoir parcouru le forum j'ai vu toutes sortes de manipulations avec Excel mais ce que je veux savoir se rapporte à exporter des valeurs d'un tableau vers une feuille excel. En fait, ma question est:
Est-ce qu'on peut utiliser une variable comme dimension d'un tableau?
exemple on considere que la variable "$nbitems" s'incremente ailleurs dans le programme avant d'arriver a cette fonction:

Code : Tout sélectionner

func Exportexcel()
    Local $Excelarray[$nbitem][3]
    $book = _ExcelBookNew()   ;ouvre une feuille excel

    for $x = 0 to $nbitem
        $Excelarray[$x]= [$machin1, $machin2, $machin3]  ;Je veux ces 3 resultats à la position x
    Next
    _ExcelWriteSheetFromArray($book, $Excelarray, 1, 1, 0, 0)   
    MsgBox(0, "Press OK to Save File")
            _ExcelBookSaveAs($book, @TempDir & "\Temp.xls", "xls", 0, 1)  ;sauvegarde dans le repertoire temporaire

EndFunc
Je suis sure qu'il y a des erreurs inimaginables dans ce code, mais bon j'ai un peu essayé de tricher vu que en Autoit il n'ya pas de tableau dynamique.
Alors n'hesitez pas à me proposer d'autres facons de faire s.v.p.
Merci d'avance

Signé: "the new one"

Re: [..] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 03:02
par bloodwolff
Sa aurais été si simple à tester :wink:

Code : Tout sélectionner

$var=2
dim $tableau[$var]
$var=10
For $i=0 To 9
    $tableau[$i]=1
Next
MsgBox(0,"","Oui on peut")
Si tu le test tu verra que sa donne une jolie erreur :(

On peut toujours recréer se servir d'une fonction qui recrée un deuxième tableau avant de l'utiliser

Sinon je reste un gros débutant il doit y avoir de meilleur solution

Code : Tout sélectionner

Func GrossirTableau($tableau,$variable)
    Dim $tableau2[$variable]
    For $i=0 to UBound($tableau)-1
        $tableau2[$i]=$tableau[$i]
    Next
Return $tableau2
EndFunc
C'est pour 1 tableau à 1 dimension mais le principe reste le même pour plusieurs

Ps:Ne t'étonne pas si la fonction à une erreur je vien de la faire et je ne l'ai pas testé

Re: [..] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 08:09
par Tlem
Pour créer un tableau 'dynamique', il y a tout simplement :

- Redim.
The ReDim keyword is similar to Dim, except that ReDim preserves the values in the array instead of removing the values while resizing an array. The number of dimensions must remain the same

- _ArrayAdd.
Adds a specified value at the end of an existing array.

[R] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 16:29
par Ladygeek
@bloodwolff, La redimension du tableau j'avoue que je n'y avais pas pensé.. :oops: lol
@Tlem, le ReDim simplifierait vraiment la vie je savais meme pas que ca existait... :o
Merci guys!!

Re: [..] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 18:48
par bloodwolff
Moi non plus , je prend en note :D

Re: [..] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 20:56
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.

[R] Problème avec _ExcelWriteSheetFromArray

Posté : ven. 22 oct. 2010 21:24
par Ladygeek
Merci