OVH Cloud OVH Cloud

Processus Excel encore là !

4 réponses
Avatar
gege
Bonjour,

Voici un code qui me crée un fichier Excel

Sub createNewFile()

Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Set objWorkbook = objExcel.Workbooks.Add

objWorkbook.Worksheets(1).Cells(4, 3) = 55
objWorkbook.SaveAs Filename:="C:\monfichier.xls"
objWorkbook.Save
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

End Sub

Tout se passe très bien, mais je constate que la nouvelle
instance d'Excel demeure toujours dans la liste des processus
après la fin de la routine ! Du coup, si je lance 20 fois la routine
je vais avoir 20 processus à la suite ....

Any idea please ?
Thx !

4 réponses

Avatar
Michel Pierron
Bonjour gege;
Je suppose que tu lances ta procédure depuis le classeur qui la contient;
auquel cas, l'instance que tu vois correspond à l'instance Excel en cours.
Lorque tu exécutes la procédure, une nouvelle instance d'Excel est créée et
supprimée en fin de procédure avec objExcel.Quit.
En résumé, en cours d'exécution de la procédure, il y 2 instances d'Excel,
puis subsiste uniquement celle qui contient le classeur contenant lui-même
ta procédure.

MP

"gege" a écrit dans le message de
news:41ea6880$0$25809$
Bonjour,

Voici un code qui me crée un fichier Excel

Sub createNewFile()

Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Set objWorkbook = objExcel.Workbooks.Add

objWorkbook.Worksheets(1).Cells(4, 3) = 55
objWorkbook.SaveAs Filename:="C:monfichier.xls"
objWorkbook.Save
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

End Sub

Tout se passe très bien, mais je constate que la nouvelle
instance d'Excel demeure toujours dans la liste des processus
après la fin de la routine ! Du coup, si je lance 20 fois la routine
je vais avoir 20 processus à la suite ....

Any idea please ?
Thx !




Avatar
gege
ok avec ton explication mais dans mon
cas ... ca marche pas ! :'(

si je lance 20 fois ma procedure
et que je quitte excel,
il me restera 20 instances .....

si je fais la meme chose avec Internet Explorer
ca le ferme bien ... étrange .....

merci en tout cas ;)


"Michel Pierron" a écrit dans le message de news:
%23PlgfU9%
Bonjour gege;
Je suppose que tu lances ta procédure depuis le classeur qui la contient;
auquel cas, l'instance que tu vois correspond à l'instance Excel en cours.
Lorque tu exécutes la procédure, une nouvelle instance d'Excel est créée
et
supprimée en fin de procédure avec objExcel.Quit.
En résumé, en cours d'exécution de la procédure, il y 2 instances d'Excel,
puis subsiste uniquement celle qui contient le classeur contenant lui-même
ta procédure.

MP

"gege" a écrit dans le message de
news:41ea6880$0$25809$
Bonjour,

Voici un code qui me crée un fichier Excel

Sub createNewFile()

Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Set objWorkbook = objExcel.Workbooks.Add

objWorkbook.Worksheets(1).Cells(4, 3) = 55
objWorkbook.SaveAs Filename:="C:monfichier.xls"
objWorkbook.Save
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

End Sub

Tout se passe très bien, mais je constate que la nouvelle
instance d'Excel demeure toujours dans la liste des processus
après la fin de la routine ! Du coup, si je lance 20 fois la routine
je vais avoir 20 processus à la suite ....

Any idea please ?
Thx !







Avatar
Clément Marcotte
Si tu ne mets pas ton second processus visible, Excel est trop tête de
cochon pour se fermer par automation.


"gege" a écrit dans le message de
news:41ea7c5a$0$7097$
ok avec ton explication mais dans mon
cas ... ca marche pas ! :'(

si je lance 20 fois ma procedure
et que je quitte excel,
il me restera 20 instances .....

si je fais la meme chose avec Internet Explorer
ca le ferme bien ... étrange .....

merci en tout cas ;)


"Michel Pierron" a écrit dans le message de
news:

%23PlgfU9%
Bonjour gege;
Je suppose que tu lances ta procédure depuis le classeur qui la
contient;


auquel cas, l'instance que tu vois correspond à l'instance Excel
en cours.


Lorque tu exécutes la procédure, une nouvelle instance d'Excel est
créée


et
supprimée en fin de procédure avec objExcel.Quit.
En résumé, en cours d'exécution de la procédure, il y 2 instances
d'Excel,


puis subsiste uniquement celle qui contient le classeur contenant
lui-même


ta procédure.

MP

"gege" a écrit dans le message de
news:41ea6880$0$25809$
Bonjour,

Voici un code qui me crée un fichier Excel

Sub createNewFile()

Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Set objWorkbook = objExcel.Workbooks.Add

objWorkbook.Worksheets(1).Cells(4, 3) = 55
objWorkbook.SaveAs Filename:="C:monfichier.xls"
objWorkbook.Save
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

End Sub

Tout se passe très bien, mais je constate que la nouvelle
instance d'Excel demeure toujours dans la liste des processus
après la fin de la routine ! Du coup, si je lance 20 fois la
routine



je vais avoir 20 processus à la suite ....

Any idea please ?
Thx !











Avatar
gege
ok, bien joué, merci !!!


"Clément Marcotte" a écrit dans le message
de news: %23dO9ux9%
Si tu ne mets pas ton second processus visible, Excel est trop tête de
cochon pour se fermer par automation.


"gege" a écrit dans le message de
news:41ea7c5a$0$7097$
ok avec ton explication mais dans mon
cas ... ca marche pas ! :'(

si je lance 20 fois ma procedure
et que je quitte excel,
il me restera 20 instances .....

si je fais la meme chose avec Internet Explorer
ca le ferme bien ... étrange .....

merci en tout cas ;)


"Michel Pierron" a écrit dans le message de
news:

%23PlgfU9%
Bonjour gege;
Je suppose que tu lances ta procédure depuis le classeur qui la
contient;


auquel cas, l'instance que tu vois correspond à l'instance Excel
en cours.


Lorque tu exécutes la procédure, une nouvelle instance d'Excel est
créée


et
supprimée en fin de procédure avec objExcel.Quit.
En résumé, en cours d'exécution de la procédure, il y 2 instances
d'Excel,


puis subsiste uniquement celle qui contient le classeur contenant
lui-même


ta procédure.

MP

"gege" a écrit dans le message de
news:41ea6880$0$25809$
Bonjour,

Voici un code qui me crée un fichier Excel

Sub createNewFile()

Dim objExcel As New Excel.Application
Dim objWorkbook As Excel.Workbook
Set objWorkbook = objExcel.Workbooks.Add

objWorkbook.Worksheets(1).Cells(4, 3) = 55
objWorkbook.SaveAs Filename:="C:monfichier.xls"
objWorkbook.Save
objWorkbook.Close
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing

End Sub

Tout se passe très bien, mais je constate que la nouvelle
instance d'Excel demeure toujours dans la liste des processus
après la fin de la routine ! Du coup, si je lance 20 fois la
routine



je vais avoir 20 processus à la suite ....

Any idea please ?
Thx !