Processus Excel reste actif

KatmandouJah Messages postés 3 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 28 mai 2005 - 27 mai 2005 à 18:53
cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 juin 2005 - 28 mai 2005 à 16:45
Bonjour,
J'ai ecris un module sous ACCESS chargée d'ouvrir un classeur Excel existant, de creer un autre classeur et de copier une partie du contenu du classeur existant dans l'autre classeur. J'arrive a creer et a faire des modifications séparement dans les deux classeurs, et a sauvegarder mais des que je fait un copier coller d'un classeur vers un autre, Le processus EXCEL reste actif dans le gestionnaire des taches, et ces tres embetant car je veux recomencer cette operation plusieurs fois de suite dans mon module et si Le processus EXCEL reste actif dans le gestionnaire des taches, j'ai une erreur.
J'ai peut etre une erreur dans mon code ou j'ai oublié une ligne?
Sinon une solution pour que ca marche sans modifier mon programme serait de rajouter une ligne a la fin de mon programme qui fasse l'action suivante.

Si processus EXCEL = actif alors
Terminer le processus Excel
Fin Si

Voila mon code :

Public Function transfert()

'Déclaration des variables
Dim xlBook As Excel.Workbook
Dim xlApp As Excel.Application
Dim xlFeuille As Object

Dim NewExcelSheet As Object

'J'initialise mes variables
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("Chemin\Classeur.xls")
Set xlFeuille = xlBook.Sheets("Sheet1")

Set NewExcelSheet = CreateObject("Excel.Sheet")

'Modifications
xlFeuille.Range("A1").Select
Selection.Copy

ExcelSheet.Application.Range("A1").Select
ActiveSheet.Paste
xlApp.CutCopyMode = False

'Enregistrement
ExcelSheet.SaveAs "Chemin\New.xls"

'Fermeture d'excel
xlBook.Save
xlBook.Close
xlApp.Quit

ExcelSheet.Application.Quit

'Supprime les variables objet
Set xlApp = Nothing
Set xlBook = Nothing
Set xlFeuille = Nothing

Set ExcelSheet = Nothing

End Function

3 réponses

cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 juin 2005
27 mai 2005 à 19:11
Pourquoi initialiser un objet NewExcelSheet et ne pas l'utiliser ?

Pourquoi utiliser un objet ExcelSheet non initialisé ?



A voir ...



De plus, tu peux aussi sauvegarder ton fichier (NewExcelSheet ou ExcelSheet
), faire tes modifs et ensuite le sauvegarder une fois le travail
termnié. Cela t'évitera de travaillé sur un objet temporaire...

Tecman
0
KatmandouJah Messages postés 3 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 28 mai 2005
28 mai 2005 à 11:27
En fait je me suis trompe dans mon code je copie les donnees depuis xlFeuille vers NewExcelSheet donc la ligne suivante est fausse :

ExcelSheet.Application.Range("A1").Select
ActiveSheet.Paste
xlApp.CutCopyMode = False

ExcelSheet.SaveAs "Chemin\New.xls"

en fait c'est :

NewExcelSheet.Application.Range("A1").Select
ActiveSheet.Paste
xlApp.CutCopyMode = False

NewExcelSheet.SaveAs "Chemin\New.xls"

Voila mais même comme ca le processus reste actif.

En Reponse a ce que tu as dit :
De plus, tu peux aussi sauvegarder ton fichier (NewExcelSheet ou ExcelSheet ), faire tes modifs et ensuite le sauvegarder une fois le travail termnié. Cela t'évitera de travaillé sur un objet temporaire...

Tu crois qu'il faudrait que je fasse dans cette ordre?

NewExcelSheet.SaveAs "Chemin\New.xls"

'Modifications

et Resauvegarde, en tou cas merci davoir repondu,salut
0
cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 juin 2005
28 mai 2005 à 16:45
Il me semble que cela puisse être une cause de perte du pointeur du processus actif.

Tiens-nous au courant.
@+
Tecman
0
Rejoignez-nous