Process Excel toujours actif !

Le
Pascal
bonjour,
ai déjà posté plus bas à ce sujet mais peut-être passé inaperçu!

je ne comprends pas, ceci tue le process EXCEL.EXE
On Error GoTo ExcelExists_ERR
Set DocExcel = CreateObject("Excel.Application")
DocExcel.Quit
Set DocExcel = Nothing
OkExcel = True
ExcelExists_END:
Exit Function
ExcelExists_ERR:
OkExcel = False
Resume ExcelExists_END

par contre si on ouvre le classeur , on écrit sur la feuille ,
la fermeture et la libération de l'objet ne tue pas le process
docexcel.quit
docexcel = nothing

c'est le même principe pour Word et là je n'ai aucun soucis !
une idée?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal
Le #15384831
bon je progresse
si j'enlève cette ligne cela fonctionne
ai je commis une erreur, sachant que je n'ai aucun problème lors de la 1ère
excécution
***********************************************
'trie les produit
DocExcel.Range("B8:c32").Select
DocExcel.Selection.Sort Key1:=Range("B8"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom,
DataOption1:=xlSortNormal
************************************************
embêtant çà si je ne peux trier mes produits!
merci de vos idées, expérience
Pascal


"Pascal"
bonjour,
ai déjà posté plus bas à ce sujet mais peut-être passé inaperçu!

je ne comprends pas, ceci tue le process EXCEL.EXE
On Error GoTo ExcelExists_ERR
Set DocExcel = CreateObject("Excel.Application")
DocExcel.Quit
Set DocExcel = Nothing
OkExcel = True
ExcelExists_END:
Exit Function
ExcelExists_ERR:
OkExcel = False
Resume ExcelExists_END

par contre si on ouvre le classeur , on écrit sur la feuille ,
la fermeture et la libération de l'objet ne tue pas le process
docexcel.quit
docexcel = nothing

c'est le même principe pour Word et là je n'ai aucun soucis !
une idée?

Merci



Jacques93
Le #15383731
Bonjour Pascal,
Pascal a écrit :
bonjour,
ai déjà posté plus bas à ce sujet mais peut-être passé inaperçu!

je ne comprends pas, ceci tue le process EXCEL.EXE
On Error GoTo ExcelExists_ERR
Set DocExcel = CreateObject("Excel.Application")
DocExcel.Quit
Set DocExcel = Nothing
OkExcel = True
ExcelExists_END:
Exit Function
ExcelExists_ERR:
OkExcel = False
Resume ExcelExists_END

par contre si on ouvre le classeur , on écrit sur la feuille ,
la fermeture et la libération de l'objet ne tue pas le process
docexcel.quit
docexcel = nothing

c'est le même principe pour Word et là je n'ai aucun soucis !
une idée?




J'ai le sentiment que tes problèmes viennent du fait que tu crées des
références implicites sur des objets que tu ne peux pas détruire par la
suite (Workbook, Worksheet, Range, Selection ...). Ils restent comme des
zombies et empêchent la fermeture du processus.

Essaie le code suivant :

' ---------------------------------------------------
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim NomFichier As String

NomFichier = "C:toto.xls"
Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("C:Toto.xls")

xlBook.Worksheets(1).Range("B8:C32").Sort _
xlBook.Worksheets(1).Range("B8"), xlAscending, _
, , , , , xlGuess, 1, False, xlTopToBottom, xlSortNormal
xlApp.DisplayAlerts = False
xlApp.ActiveWorkbook.SaveAs FileName:=NomFichier, _
FileFormat:, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

'quitte Excel
xlBook.Close
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
' -------------------------------------------------------

ou, si tu ne veux pas mettre de références à Excel :

' -------------------------------------------------------
Private Sub Command1_Click()
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim NomFichier As String

NomFichier = "C:toto.xls"
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open("C:Toto.xls")

xlBook.Worksheets(1).Range("B8:C32").Sort _
xlBook.Worksheets(1).Range("B8"), xlAscending, _
, , , , , xlGuess, 1, False, xlTopToBottom, xlSortNormal
xlApp.DisplayAlerts = False
xlApp.ActiveWorkbook.SaveAs FileName:=NomFichier, _
FileFormat:, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

'quitte Excel
xlBook.Close
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub



--
Cordialement,

Jacques.
Jacques93
Le #15383711
Jacques93 a écrit :
Bonjour Pascal,


[...]
suite (Workbook, Worksheet, Range, Selection ...). Ils restent comme des
zombies et empêchent la fermeture du processus.



objets orphelins serait plus approprié que zombie ;-)

--
Cordialement,

Jacques.
Pascal
Le #15383671
hello jacques,
tu as mis le doigt dessus
je t'en remercie
bonne leçon pour la prochaine fois
merci encore
Pascal

"Jacques93" a écrit dans le message de news:

Jacques93 a écrit :
Bonjour Pascal,


[...]
suite (Workbook, Worksheet, Range, Selection ...). Ils restent comme des
zombies et empêchent la fermeture du processus.



objets orphelins serait plus approprié que zombie ;-)

--
Cordialement,

Jacques.


Publicité
Poster une réponse
Anonyme