J'ai un probl=E8me pour terminer un processus excel avec mon=20
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais=20
lorsque je veux fermer la liaison, le processus ne se=20
termine pas toujours (parfois =E7a marche, parfois non) et=20
reste donc dans le gestionnaire des t=E2ches.
J'ouvre notamment avec :
Set appex2 =3D CreateObject("excel.Application")
Set exl2 =3D appex2.Workbooks.Open(nomfich2, 0,=20
True, , , , , , , , False)
En gros je fais pour fermer :=20
Set appex2 =3D GetObject(, "excel.Application")
exl2.Close SaveChanges:=3DFalse
appex2.Quit
Set exl2 =3D Nothing
Set appex2 =3D Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Tu as essayé en remplaçant la méthode GetObject par CreateObject ?
A+. James. --------------------------
"Yann" a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Bonjour,
Tu as essayé en remplaçant la méthode GetObject par CreateObject ?
A+.
James.
--------------------------
"Yann" a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais
lorsque je veux fermer la liaison, le processus ne se
termine pas toujours (parfois ça marche, parfois non) et
reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application")
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application")
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Tu as essayé en remplaçant la méthode GetObject par CreateObject ?
A+. James. --------------------------
"Yann" a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
papou
Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set appex2 GetObject(, "excel.Application") pour la fermeture du processus ? Si c'est le case c'est inutile, il te suffit d'utiliser ta première variable (Set appex2 = CreateObject("excel.Application")) pour fermer Excel : appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message de news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Bonjour Yann
Si j'en crois ton message, tu redéfinis la variable (Set appex2 GetObject(, "excel.Application") pour la fermeture du processus ?
Si c'est le case c'est inutile, il te suffit d'utiliser ta première variable
(Set appex2 = CreateObject("excel.Application")) pour fermer Excel :
appex2.Quit
Ou je n'ai pas tout compris ?
Cordialement
Pascal
"Yann" <yann.thiebaut@np.ge.cum> a écrit dans le message de
news:307001c47eae$d88bb3e0$a301280a@phx.gbl...
Bonjour,
J'ai un problème pour terminer un processus excel avec mon
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais
lorsque je veux fermer la liaison, le processus ne se
termine pas toujours (parfois ça marche, parfois non) et
reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application")
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application")
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set appex2 GetObject(, "excel.Application") pour la fermeture du processus ? Si c'est le case c'est inutile, il te suffit d'utiliser ta première variable (Set appex2 = CreateObject("excel.Application")) pour fermer Excel : appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message de news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Laurent Jordi \(www.ezlogic.mc\)
Je vous ai mis une réponse dans l'autre branche de la discussion
LJ
"papou" <cestpasbonprobin@çanonpluscg44_fr> a écrit dans le message de news:u0$
Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set appex2 > GetObject(, "excel.Application") pour la fermeture du processus ? Si c'est le case c'est inutile, il te suffit d'utiliser ta première
variable
(Set appex2 = CreateObject("excel.Application")) pour fermer Excel : appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message de news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Je vous ai mis une réponse dans l'autre branche de la discussion
LJ
"papou" <cestpasbonprobin@çanonpluscg44_fr> a écrit dans le message de
news:u0$vBarfEHA.3944@tk2msftngp13.phx.gbl...
Bonjour Yann
Si j'en crois ton message, tu redéfinis la variable (Set appex2 > GetObject(, "excel.Application") pour la fermeture du processus ?
Si c'est le case c'est inutile, il te suffit d'utiliser ta première
variable
(Set appex2 = CreateObject("excel.Application")) pour fermer Excel :
appex2.Quit
Ou je n'ai pas tout compris ?
Cordialement
Pascal
"Yann" <yann.thiebaut@np.ge.cum> a écrit dans le message de
news:307001c47eae$d88bb3e0$a301280a@phx.gbl...
Bonjour,
J'ai un problème pour terminer un processus excel avec mon
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais
lorsque je veux fermer la liaison, le processus ne se
termine pas toujours (parfois ça marche, parfois non) et
reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application")
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application")
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Je vous ai mis une réponse dans l'autre branche de la discussion
LJ
"papou" <cestpasbonprobin@çanonpluscg44_fr> a écrit dans le message de news:u0$
Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set appex2 > GetObject(, "excel.Application") pour la fermeture du processus ? Si c'est le case c'est inutile, il te suffit d'utiliser ta première
variable
(Set appex2 = CreateObject("excel.Application")) pour fermer Excel : appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message de news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Yann
Merci beaucoup mais il y a un problème, il fait une erreur "procédure sub ou function non définie" sur : GestError (idem avec GetError, j'ai supposé que c'était plutôt ça)
Merci d'avance. Yann
-----Message d'origine----- Votez pour moa je veux être mvp à la place du mvp...
'******************************************************** Public Sub KillXL() '******************************************************** On Error GoTo LocalError Dim PrevInstance As Object Dim Count As Integer
'**** Si XL est en cours d'utilisation -> Fermeture
d'XL
Do Set PrevInstance = Nothing On Error Resume Next Set PrevInstance = GetObject
(, "Excel.application")
On Error GoTo LocalError If Not PrevInstance Is Nothing Then 'MsgBox "Fermeture d'Excel" Call QuitExcel(PrevInstance) End If Count = Count + 1 If Count = 5 Then Exit Do Loop
DoEvents Exit Sub '****************************************** LocalError: '****************************************** If GestError(Err, Me.Name, "KillXL", Params.PathLog)
= ResumeOut Then
Screen.MousePointer = vbNormal: Resume out Else End End If out: End Sub '******************************************************** Public Sub QuitExcel(Instance As Object) '******************************************************** On Error GoTo LocalError Dim WB As Workbook If Not Instance Is Nothing Then On Error Resume Next Instance.DisplayAlerts = False For Each WB In Instance.Workbooks WB.Close Next Instance.Quit On Error GoTo LocalError Set WB = Nothing Set Instance = Nothing End If Exit Sub '****************************************** LocalError: '****************************************** If GestError(Err, Me.Name, "QuitExcel",
Params.PathLog) = ResumeOut Then
Screen.MousePointer = vbNormal: Resume out Else End End If out: End Sub
Merci beaucoup mais il y a un problème, il fait une
erreur "procédure sub ou function non définie" sur :
GestError (idem avec GetError, j'ai supposé que c'était
plutôt ça)
Merci d'avance.
Yann
-----Message d'origine-----
Votez pour moa je veux être mvp à la place du mvp...
'********************************************************
Public Sub KillXL()
'********************************************************
On Error GoTo LocalError
Dim PrevInstance As Object
Dim Count As Integer
'**** Si XL est en cours d'utilisation -> Fermeture
d'XL
Do
Set PrevInstance = Nothing
On Error Resume Next
Set PrevInstance = GetObject
(, "Excel.application")
On Error GoTo LocalError
If Not PrevInstance Is Nothing Then
'MsgBox "Fermeture d'Excel"
Call QuitExcel(PrevInstance)
End If
Count = Count + 1
If Count = 5 Then Exit Do
Loop
DoEvents
Exit Sub
'******************************************
LocalError:
'******************************************
If GestError(Err, Me.Name, "KillXL", Params.PathLog)
= ResumeOut Then
Screen.MousePointer = vbNormal: Resume out
Else
End
End If
out:
End Sub
'********************************************************
Public Sub QuitExcel(Instance As Object)
'********************************************************
On Error GoTo LocalError
Dim WB As Workbook
If Not Instance Is Nothing Then
On Error Resume Next
Instance.DisplayAlerts = False
For Each WB In Instance.Workbooks
WB.Close
Next
Instance.Quit
On Error GoTo LocalError
Set WB = Nothing
Set Instance = Nothing
End If
Exit Sub
'******************************************
LocalError:
'******************************************
If GestError(Err, Me.Name, "QuitExcel",
Params.PathLog) = ResumeOut Then
Screen.MousePointer = vbNormal: Resume out
Else
End
End If
out:
End Sub
Merci beaucoup mais il y a un problème, il fait une erreur "procédure sub ou function non définie" sur : GestError (idem avec GetError, j'ai supposé que c'était plutôt ça)
Merci d'avance. Yann
-----Message d'origine----- Votez pour moa je veux être mvp à la place du mvp...
'******************************************************** Public Sub KillXL() '******************************************************** On Error GoTo LocalError Dim PrevInstance As Object Dim Count As Integer
'**** Si XL est en cours d'utilisation -> Fermeture
d'XL
Do Set PrevInstance = Nothing On Error Resume Next Set PrevInstance = GetObject
(, "Excel.application")
On Error GoTo LocalError If Not PrevInstance Is Nothing Then 'MsgBox "Fermeture d'Excel" Call QuitExcel(PrevInstance) End If Count = Count + 1 If Count = 5 Then Exit Do Loop
DoEvents Exit Sub '****************************************** LocalError: '****************************************** If GestError(Err, Me.Name, "KillXL", Params.PathLog)
= ResumeOut Then
Screen.MousePointer = vbNormal: Resume out Else End End If out: End Sub '******************************************************** Public Sub QuitExcel(Instance As Object) '******************************************************** On Error GoTo LocalError Dim WB As Workbook If Not Instance Is Nothing Then On Error Resume Next Instance.DisplayAlerts = False For Each WB In Instance.Workbooks WB.Close Next Instance.Quit On Error GoTo LocalError Set WB = Nothing Set Instance = Nothing End If Exit Sub '****************************************** LocalError: '****************************************** If GestError(Err, Me.Name, "QuitExcel",
Params.PathLog) = ResumeOut Then
Screen.MousePointer = vbNormal: Resume out Else End End If out: End Sub
Yann
Merci de votre réponse. Effectivement vous avez raison, il n'y a pas besoin de de redéfinir la variable au moment de fermer, cependant le problème ne vient malheureusement pas de là.
-----Message d'origine----- Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set
appex2 =
GetObject(, "excel.Application") pour la fermeture du
processus ?
Si c'est le case c'est inutile, il te suffit d'utiliser
ta première variable
(Set appex2 = CreateObject("excel.Application")) pour
fermer Excel :
appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message
de
news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
.
Merci de votre réponse.
Effectivement vous avez raison, il n'y a pas besoin de de
redéfinir la variable au moment de fermer, cependant le
problème ne vient malheureusement pas de là.
-----Message d'origine-----
Bonjour Yann
Si j'en crois ton message, tu redéfinis la variable (Set
appex2 =
GetObject(, "excel.Application") pour la fermeture du
processus ?
Si c'est le case c'est inutile, il te suffit d'utiliser
ta première variable
(Set appex2 = CreateObject("excel.Application")) pour
fermer Excel :
appex2.Quit
Ou je n'ai pas tout compris ?
Cordialement
Pascal
"Yann" <yann.thiebaut@np.ge.cum> a écrit dans le message
J'ai un problème pour terminer un processus excel avec mon
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais
lorsque je veux fermer la liaison, le processus ne se
termine pas toujours (parfois ça marche, parfois non) et
reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application")
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application")
exl2.Close SaveChanges:=False
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Merci de votre réponse. Effectivement vous avez raison, il n'y a pas besoin de de redéfinir la variable au moment de fermer, cependant le problème ne vient malheureusement pas de là.
-----Message d'origine----- Bonjour Yann Si j'en crois ton message, tu redéfinis la variable (Set
appex2 =
GetObject(, "excel.Application") pour la fermeture du
processus ?
Si c'est le case c'est inutile, il te suffit d'utiliser
ta première variable
(Set appex2 = CreateObject("excel.Application")) pour
fermer Excel :
appex2.Quit
Ou je n'ai pas tout compris ? Cordialement Pascal
"Yann" a écrit dans le message
de
news:307001c47eae$d88bb3e0$ Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
.
ng
Salut,
Chez moi cela qui(t parafitement le processus :
Dim oExcel As Object Set oExcel = CreateObject("Excel.Application") Call oExcel.Quit Set oExcel = Nothing
Il suffit de s'assurer qu'aucun document n'est ouvert.
Au pire, on pourait tuer le processus via un TerminateProcess()
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Yann a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann
Salut,
Chez moi cela qui(t parafitement le processus :
Dim oExcel As Object
Set oExcel = CreateObject("Excel.Application")
Call oExcel.Quit
Set oExcel = Nothing
Il suffit de s'assurer qu'aucun document n'est ouvert.
Au pire, on pourait tuer le processus via un TerminateProcess()
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Yann <yann.thiebaut@np.ge.cum> a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon
application en VB.
J'ouvre un fichier excel pour faire des calculs, mais
lorsque je veux fermer la liaison, le processus ne se
termine pas toujours (parfois ça marche, parfois non) et
reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application")
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application")
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
Merci d'avance pour votre aide.
Cordialement.
Yann
Dim oExcel As Object Set oExcel = CreateObject("Excel.Application") Call oExcel.Quit Set oExcel = Nothing
Il suffit de s'assurer qu'aucun document n'est ouvert.
Au pire, on pourait tuer le processus via un TerminateProcess()
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Yann a écrit :
Bonjour,
J'ai un problème pour terminer un processus excel avec mon application en VB. J'ouvre un fichier excel pour faire des calculs, mais lorsque je veux fermer la liaison, le processus ne se termine pas toujours (parfois ça marche, parfois non) et reste donc dans le gestionnaire des tâches.
J'ouvre notamment avec :
Set appex2 = CreateObject("excel.Application") Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
En gros je fais pour fermer :
Set appex2 = GetObject(, "excel.Application") exl2.Close SaveChanges:úlse appex2.Quit Set exl2 = Nothing Set appex2 = Nothing
Merci d'avance pour votre aide. Cordialement. Yann