Page 1 sur 1

[R] Copier une feuille Excel d'un classeur vers un autre

Posté : mer. 27 janv. 2010 11:06
par Ahbadiane
Bonjour,

Ce que je cherche à faire : Copier une feuille Excel d'un classeur vers un autre classeur existant
Ce que j'ai réussi à faire : Copier une feuille Excel dans le même classeur

Le code joint provoque l'erreur :
(11) : ==> The requested action with this object has failed.
If IsObj($oCopieVers) Then $oFic1.ActiveWorkbook.Sheets($sOngletFic1).Copy($oCopieVers)^ ERROR

Si je remplace en ligne 10 : Global $oCopieVers = $oFic2.ActiveWorkbook.Sheets(1)
par (pour copier dans le même classeur) : Global $oCopieVers = $oFic1.ActiveWorkbook.Sheets(1)
la copie se passe sans erreur

Si vous avez la solution à mon problème ...

Code : Tout sélectionner

#include <Excel.au3>
Global Const $sFic1 = "Test1.xls"
Global Const $sOngletFic1 = "Onglet1Test1"
Global Const $sFic2 = "Test2.xls"

Global $oFic1 = _ExcelBookOpen(@ScriptDir & "\" & $sFic1)
Global $oFic2 = _ExcelBookOpen(@ScriptDir & "\" & $sFic2)

; Objet destination de la copie
Global $oCopieVers = $oFic2.ActiveWorkbook.Sheets(1)
If IsObj($oCopieVers) Then $oFic1.ActiveWorkbook.Sheets($sOngletFic1).Copy($oCopieVers)

[R] Copier une feuille Excel d'un classeur vers un autre

Posté : jeu. 28 janv. 2010 22:38
par Ahbadiane
La solution était dans l'ordre d'ouverture des deux fichiers et dans la création d'un seul objet Excel

Code : Tout sélectionner

Global $sFic1 = "Test1.xls"
Global $sFic2 = "Test2.xls"
Global $oExcel = ObjCreate("Excel.Application")
$oExcel.Visible = True
$oExcel.WorkBooks.Open(@ScriptDir & "\" & $sFic2)
$oExcel.WorkBooks.Open(@ScriptDir & "\" & $sFic1)
$oExcel.Application.Workbooks($sFic1).Sheets("Feuil1").Select
$oExcel.Application.ActiveWorkbook.Sheets("Feuil1").Copy($oExcel.Application.Workbooks($sFic2).Sheets(1))