Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Process Excel toujours actif !

4 réponses
Avatar
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

4 réponses

Avatar
Pascal
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" a écrit dans le message de news:

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



Avatar
Jacques93
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.
Avatar
Jacques93
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.
Avatar
Pascal
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.