-----Message d'origine-----
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:úlse » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
.
-----Message d'origine-----
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:=False » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:=False
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:=False
Next w
Merci d'avance pour votre aide.
Yann
.
-----Message d'origine-----
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:úlse » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
appex2.Quit
Set exl2 = Nothing
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
.
bonjour,
moi je fait comme ca et ca marche super bien
' adéclarer au tout début du programme
public xls as excel.application
dans le form_load()
xls.workbooks.open(nomfichier)
dans le unload
set xls = nothing
si ce n'est pas claire je t'enverrais ce soir le code exact
bonne chance
>-----Message d'origine-----
>Bonjour,
>
>Je développe un programme en VB qui, pour effectuer des
>calculs, utilise régulièrement un fichier Excel (dans
>lequel j'entre des valeurs et dans lequel je récupère mes
>résultats).
>
>J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
>après), mais j'ai un problème de fermeture d'Excel qui ne
>se ferme pas toujours (le processus reste dans le
>gestionnaire des tâches).
>Je ne comprends vraiment pas pourquoi Excel se ferme mal,
>si c'est parce que je l'ouvre et le ferme plusieurs fois
>de suite, si c'est à cause d'une liaison dans ce
classeur,
>si c'est mon code qui est faux (faut-il faire à chaque
>fois « exl2.Close SaveChanges:úlse » , «
>appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
>Nothing » ? )
>
>Sub ouvreexcel2()
>
>fermeexcel2 'ferme excel
>Set appex2 = CreateObject("excel.Application")
>nomfich2 = App.Path & "ExcelfilesParamCF.xls"
>Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
>True, , , , , , , , False)
>
>End Sub
>
>Sub fermeexcel2()
>
>On Error GoTo ges1
>
>exl2.Close SaveChanges:úlse
>appex2.Quit
>Set exl2 = Nothing
>Set appex2 = Nothing
>ges1:
>Err.Clear
>Resume Next
>
>End Sub
>
>
>Je me suis également dit qu'il pouvait y avoir plusieurs
>instances de mon fichier Excel ouvertes, alors j'ai
essayé
>ceci mais ça ne marche pas non plus.
>
>For Each w In appex2.Workbooks
>Debug.Print w.Name
> appex2.Workbooks(w.Name).Close SaveChanges:úlse
>Next w
>
>Merci d'avance pour votre aide.
>Yann
>
>.
>
bonjour,
moi je fait comme ca et ca marche super bien
' adéclarer au tout début du programme
public xls as excel.application
dans le form_load()
xls.workbooks.open(nomfichier)
dans le unload
set xls = nothing
si ce n'est pas claire je t'enverrais ce soir le code exact
bonne chance
>-----Message d'origine-----
>Bonjour,
>
>Je développe un programme en VB qui, pour effectuer des
>calculs, utilise régulièrement un fichier Excel (dans
>lequel j'entre des valeurs et dans lequel je récupère mes
>résultats).
>
>J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
>après), mais j'ai un problème de fermeture d'Excel qui ne
>se ferme pas toujours (le processus reste dans le
>gestionnaire des tâches).
>Je ne comprends vraiment pas pourquoi Excel se ferme mal,
>si c'est parce que je l'ouvre et le ferme plusieurs fois
>de suite, si c'est à cause d'une liaison dans ce
classeur,
>si c'est mon code qui est faux (faut-il faire à chaque
>fois « exl2.Close SaveChanges:úlse » , «
>appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
>Nothing » ? )
>
>Sub ouvreexcel2()
>
>fermeexcel2 'ferme excel
>Set appex2 = CreateObject("excel.Application")
>nomfich2 = App.Path & "ExcelfilesParamCF.xls"
>Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
>True, , , , , , , , False)
>
>End Sub
>
>Sub fermeexcel2()
>
>On Error GoTo ges1
>
>exl2.Close SaveChanges:úlse
>appex2.Quit
>Set exl2 = Nothing
>Set appex2 = Nothing
>ges1:
>Err.Clear
>Resume Next
>
>End Sub
>
>
>Je me suis également dit qu'il pouvait y avoir plusieurs
>instances de mon fichier Excel ouvertes, alors j'ai
essayé
>ceci mais ça ne marche pas non plus.
>
>For Each w In appex2.Workbooks
>Debug.Print w.Name
> appex2.Workbooks(w.Name).Close SaveChanges:úlse
>Next w
>
>Merci d'avance pour votre aide.
>Yann
>
>.
>
bonjour,
moi je fait comme ca et ca marche super bien
' adéclarer au tout début du programme
public xls as excel.application
dans le form_load()
xls.workbooks.open(nomfichier)
dans le unload
set xls = nothing
si ce n'est pas claire je t'enverrais ce soir le code exact
bonne chance
>-----Message d'origine-----
>Bonjour,
>
>Je développe un programme en VB qui, pour effectuer des
>calculs, utilise régulièrement un fichier Excel (dans
>lequel j'entre des valeurs et dans lequel je récupère mes
>résultats).
>
>J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
>après), mais j'ai un problème de fermeture d'Excel qui ne
>se ferme pas toujours (le processus reste dans le
>gestionnaire des tâches).
>Je ne comprends vraiment pas pourquoi Excel se ferme mal,
>si c'est parce que je l'ouvre et le ferme plusieurs fois
>de suite, si c'est à cause d'une liaison dans ce
classeur,
>si c'est mon code qui est faux (faut-il faire à chaque
>fois « exl2.Close SaveChanges:úlse » , «
>appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
>Nothing » ? )
>
>Sub ouvreexcel2()
>
>fermeexcel2 'ferme excel
>Set appex2 = CreateObject("excel.Application")
>nomfich2 = App.Path & "ExcelfilesParamCF.xls"
>Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
>True, , , , , , , , False)
>
>End Sub
>
>Sub fermeexcel2()
>
>On Error GoTo ges1
>
>exl2.Close SaveChanges:úlse
>appex2.Quit
>Set exl2 = Nothing
>Set appex2 = Nothing
>ges1:
>Err.Clear
>Resume Next
>
>End Sub
>
>
>Je me suis également dit qu'il pouvait y avoir plusieurs
>instances de mon fichier Excel ouvertes, alors j'ai
essayé
>ceci mais ça ne marche pas non plus.
>
>For Each w In appex2.Workbooks
>Debug.Print w.Name
> appex2.Workbooks(w.Name).Close SaveChanges:úlse
>Next w
>
>Merci d'avance pour votre aide.
>Yann
>
>.
>
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce classeur,
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:úlse » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
appex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai essayé
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce classeur,
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:úlse » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
appex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai essayé
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Bonjour,
Je développe un programme en VB qui, pour effectuer des
calculs, utilise régulièrement un fichier Excel (dans
lequel j'entre des valeurs et dans lequel je récupère mes
résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci
après), mais j'ai un problème de fermeture d'Excel qui ne
se ferme pas toujours (le processus reste dans le
gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal,
si c'est parce que je l'ouvre et le ferme plusieurs fois
de suite, si c'est à cause d'une liaison dans ce classeur,
si c'est mon code qui est faux (faut-il faire à chaque
fois « exl2.Close SaveChanges:úlse » , «
appex2.Quit" , « Set exl2 = Nothing » et « Set appex2 =
Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0,
True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
appex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs
instances de mon fichier Excel ouvertes, alors j'ai essayé
ceci mais ça ne marche pas non plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Yann explained on 10/11/2004 :Bonjour,
Je développe un programme en VB qui, pour effectuer des calculs, utilise
régulièrement un fichier Excel (dans lequel j'entre des valeurs et dans
lequel je récupère mes résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci après), mais
j'ai un problème de fermeture d'Excel qui ne se ferme pas toujours (le
processus reste dans le gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal, si c'est parce
que je l'ouvre et le ferme plusieurs fois de suite, si c'est à cause
d'une liaison dans ce classeur, si c'est mon code qui est faux (faut-il
faire à chaque fois « exl2.Close SaveChanges:úlse » , « appex2.Quit" ,
« Set exl2 = Nothing » et « Set appex2 = Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
!!à l'ordre des set nothing
Set exl2 = Nothingappex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs instances de mon
fichier Excel ouvertes, alors j'ai essayé ceci mais ça ne marche pas non
plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 = nothing
ensuite le quit ensuite le set nothing de votre référence sur excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et sont
déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yann explained on 10/11/2004 :
Bonjour,
Je développe un programme en VB qui, pour effectuer des calculs, utilise
régulièrement un fichier Excel (dans lequel j'entre des valeurs et dans
lequel je récupère mes résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci après), mais
j'ai un problème de fermeture d'Excel qui ne se ferme pas toujours (le
processus reste dans le gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal, si c'est parce
que je l'ouvre et le ferme plusieurs fois de suite, si c'est à cause
d'une liaison dans ce classeur, si c'est mon code qui est faux (faut-il
faire à chaque fois « exl2.Close SaveChanges:úlse » , « appex2.Quit" ,
« Set exl2 = Nothing » et « Set appex2 = Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
!!à l'ordre des set nothing
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs instances de mon
fichier Excel ouvertes, alors j'ai essayé ceci mais ça ne marche pas non
plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 = nothing
ensuite le quit ensuite le set nothing de votre référence sur excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et sont
déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Yann explained on 10/11/2004 :Bonjour,
Je développe un programme en VB qui, pour effectuer des calculs, utilise
régulièrement un fichier Excel (dans lequel j'entre des valeurs et dans
lequel je récupère mes résultats).
J'utilise pour ouvrir et fermer Excel 2 fonctions (cf ci après), mais
j'ai un problème de fermeture d'Excel qui ne se ferme pas toujours (le
processus reste dans le gestionnaire des tâches).
Je ne comprends vraiment pas pourquoi Excel se ferme mal, si c'est parce
que je l'ouvre et le ferme plusieurs fois de suite, si c'est à cause
d'une liaison dans ce classeur, si c'est mon code qui est faux (faut-il
faire à chaque fois « exl2.Close SaveChanges:úlse » , « appex2.Quit" ,
« Set exl2 = Nothing » et « Set appex2 = Nothing » ? )
Sub ouvreexcel2()
fermeexcel2 'ferme excel
Set appex2 = CreateObject("excel.Application")
nomfich2 = App.Path & "ExcelfilesParamCF.xls"
Set exl2 = appex2.Workbooks.Open(nomfich2, 0, True, , , , , , , , False)
End Sub
Sub fermeexcel2()
On Error GoTo ges1
exl2.Close SaveChanges:úlse
!!à l'ordre des set nothing
Set exl2 = Nothingappex2.Quit
Set appex2 = Nothing
ges1:
Err.Clear
Resume Next
End Sub
Je me suis également dit qu'il pouvait y avoir plusieurs instances de mon
fichier Excel ouvertes, alors j'ai essayé ceci mais ça ne marche pas non
plus.
For Each w In appex2.Workbooks
Debug.Print w.Name
appex2.Workbooks(w.Name).Close SaveChanges:úlse
Next w
Merci d'avance pour votre aide.
Yann
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 = nothing
ensuite le quit ensuite le set nothing de votre référence sur excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et sont
déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Est-ce vraiment obligatoire de faire les calculs dans Excel au lieu de les
faire dans VB ?
Je pense qu'il y aurait un gain de temps et de résultat de cette façon.
Un exemple de ce que vous faites comme calcul permettrait sans doute de
traiter mieux votre problème.
Est-ce vraiment obligatoire de faire les calculs dans Excel au lieu de les
faire dans VB ?
Je pense qu'il y aurait un gain de temps et de résultat de cette façon.
Un exemple de ce que vous faites comme calcul permettrait sans doute de
traiter mieux votre problème.
Est-ce vraiment obligatoire de faire les calculs dans Excel au lieu de les
faire dans VB ?
Je pense qu'il y aurait un gain de temps et de résultat de cette façon.
Un exemple de ce que vous faites comme calcul permettrait sans doute de
traiter mieux votre problème.
Rebonjour,
Merci de la remarque pour l'ordre des opérations, malheureusement ça ne
marche toujours pas.
Cependant je viens de réaliser un test intéressant, puisqu'en mettant :
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
et en confimant manuellement que je ne veux pas enregistrer les
modifications dans mon fichier Excel la fermeture est effective et correcte.
Cependant avec :
exl2.Close SaveChanges:úlse
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
la fermeture n'est pas toujours effectuée. Le problème viendrait donc peut
être de "exl2.Close SaveChanges:úlse" ?
Y voyez-vous plus clair que moi ?
J'ai essayé de traquer le processus dans le gestionnaire des tâches comme
vous me l'avez suggéré, mais je ne sais pas trop comment faire, je constate
simplement que le PID et le processus restent. Que me faut-il surveiller
exactement pour identifier le problème?
Cordialement.
Yann
"Quasimodo" wrote:Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Rebonjour,
Merci de la remarque pour l'ordre des opérations, malheureusement ça ne
marche toujours pas.
Cependant je viens de réaliser un test intéressant, puisqu'en mettant :
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
et en confimant manuellement que je ne veux pas enregistrer les
modifications dans mon fichier Excel la fermeture est effective et correcte.
Cependant avec :
exl2.Close SaveChanges:úlse
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
la fermeture n'est pas toujours effectuée. Le problème viendrait donc peut
être de "exl2.Close SaveChanges:úlse" ?
Y voyez-vous plus clair que moi ?
J'ai essayé de traquer le processus dans le gestionnaire des tâches comme
vous me l'avez suggéré, mais je ne sais pas trop comment faire, je constate
simplement que le PID et le processus restent. Que me faut-il surveiller
exactement pour identifier le problème?
Cordialement.
Yann
"Quasimodo" wrote:
Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Rebonjour,
Merci de la remarque pour l'ordre des opérations, malheureusement ça ne
marche toujours pas.
Cependant je viens de réaliser un test intéressant, puisqu'en mettant :
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
et en confimant manuellement que je ne veux pas enregistrer les
modifications dans mon fichier Excel la fermeture est effective et correcte.
Cependant avec :
exl2.Close SaveChanges:úlse
Set exl2 = Nothing
appex2.Quit
Set appex2 = Nothing
la fermeture n'est pas toujours effectuée. Le problème viendrait donc peut
être de "exl2.Close SaveChanges:úlse" ?
Y voyez-vous plus clair que moi ?
J'ai essayé de traquer le processus dans le gestionnaire des tâches comme
vous me l'avez suggéré, mais je ne sais pas trop comment faire, je constate
simplement que le PID et le processus restent. Que me faut-il surveiller
exactement pour identifier le problème?
Cordialement.
Yann
"Quasimodo" wrote:Bonjour,
Attention, à l'ordre dans lequel vous enlevé des instances de vos
objets.
En 1er lieux vos feuilles ensuite votre application : set exl2 =
nothing ensuite le quit ensuite le set nothing de votre référence sur
excel.
Pour vous aidez utiliser le windows task manger pour traker
l'instanciation (de excel bien sur et non pas de ces sous objets) et
sont déréférencement.
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
re,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Re,
Merci pour l'aide, malheureusement j'ai toujours mon problème.
(en fait j'ai une procédure d'ouverture, le code de ma form puis la
procédure de fermeture. je ne comprends pas pourquoi pour certaines form
les
procédures fonctionnent correctement et pour d'autres non, c'est
illogique).
S'il vous vient une autre idée n'hésitez pas !
Encore merci.
Yannre,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Re,
Merci pour l'aide, malheureusement j'ai toujours mon problème.
(en fait j'ai une procédure d'ouverture, le code de ma form puis la
procédure de fermeture. je ne comprends pas pourquoi pour certaines form
les
procédures fonctionnent correctement et pour d'autres non, c'est
illogique).
S'il vous vient une autre idée n'hésitez pas !
Encore merci.
Yann
re,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Re,
Merci pour l'aide, malheureusement j'ai toujours mon problème.
(en fait j'ai une procédure d'ouverture, le code de ma form puis la
procédure de fermeture. je ne comprends pas pourquoi pour certaines form
les
procédures fonctionnent correctement et pour d'autres non, c'est
illogique).
S'il vous vient une autre idée n'hésitez pas !
Encore merci.
Yannre,
bon, j'ai testé le code ci-dessous :
Dim objSheet As Object
Dim objWorb As Object
Dim objExcel As Object
Set objExcel = CreateObject("excel.Application")
Set objWorb = objExcel.Workbooks.Add
objWorb.Activate
Set objSheet = objWorb.Worksheets.Add()
objSheet.Activate
objSheet.Range("a1") = "test"
'objWorb.Close savechanges:=true, FileName:="c:temptest.xls"
objWorb.Close savechanges:úlse
Set objWorb = Nothing
objExcel.Quit
Set objExcel = Nothing
cela fonctionne très bien :')
Question :
1. il faut vérifier dans l'ensemble de votre code, que vous ne
réutiliser pas une instance de votre objet excel (Tout instance d'objet
n'existe que pendant tout la durée de vie de l'ensemble de ces
varaibles pointent sur lui même).
2. Si il existe du code vba dans votre feuille excel vérifier ce qu'il
fait !!!
3. Zorry, Zépu d'idées, fa falloir chercher la vérité ailleurs :'(
@+Quaz
--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com
Bonjour.
Ce problème de fermeture d'Excel est récurrent.
J'ai déjà eu l'occasion de participer à une discussion sur le sujet avec
quelqu'un qui le rencontrait.
Cela semble un problème de libération des objets par Excel. Là où ça se
complique, c'est que les objets en question peuvent aussi bien être ceux
qu'on crée dans le code que ceux qu'Excel crée lui-même "behind the scene".
Si on les a créés soit même, pas de problème, on peut les libérer (exemple :
si on a créé un objet Range nommé myRange, il suffit de prévoir un Set
myRange = Nothing). Par contre, on n'a pas la main sur ceux qu'Excel
instancie lui-même.
La seule solution que j'avais trouvé à l'époque qui fonctionne était la
suivante :
Utiliser Excel dans une Sub appelée à partir de ma Form en définissant
toutes les variables concernant l'utilisation d'Excel dans cette procédure,
autrement dit, pas de variable publique ou de niveau module concernant
Excel. Ainsi, à la fin de l'exécution de cette Sub, tous les objets étaient
libérés.
Exemple :
Sub Command1_Click()
Call TravailleAvecExcel
End Sub
Sub TravailleAvecExcel()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
'Code
'Code
'Code
Set xlApp = Nothing
End Sub
Voilà, j'espère que ça t'aidera.
Cordialement.
Jean Yves
Bonjour.
Ce problème de fermeture d'Excel est récurrent.
J'ai déjà eu l'occasion de participer à une discussion sur le sujet avec
quelqu'un qui le rencontrait.
Cela semble un problème de libération des objets par Excel. Là où ça se
complique, c'est que les objets en question peuvent aussi bien être ceux
qu'on crée dans le code que ceux qu'Excel crée lui-même "behind the scene".
Si on les a créés soit même, pas de problème, on peut les libérer (exemple :
si on a créé un objet Range nommé myRange, il suffit de prévoir un Set
myRange = Nothing). Par contre, on n'a pas la main sur ceux qu'Excel
instancie lui-même.
La seule solution que j'avais trouvé à l'époque qui fonctionne était la
suivante :
Utiliser Excel dans une Sub appelée à partir de ma Form en définissant
toutes les variables concernant l'utilisation d'Excel dans cette procédure,
autrement dit, pas de variable publique ou de niveau module concernant
Excel. Ainsi, à la fin de l'exécution de cette Sub, tous les objets étaient
libérés.
Exemple :
Sub Command1_Click()
Call TravailleAvecExcel
End Sub
Sub TravailleAvecExcel()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
'Code
'Code
'Code
Set xlApp = Nothing
End Sub
Voilà, j'espère que ça t'aidera.
Cordialement.
Jean Yves
Bonjour.
Ce problème de fermeture d'Excel est récurrent.
J'ai déjà eu l'occasion de participer à une discussion sur le sujet avec
quelqu'un qui le rencontrait.
Cela semble un problème de libération des objets par Excel. Là où ça se
complique, c'est que les objets en question peuvent aussi bien être ceux
qu'on crée dans le code que ceux qu'Excel crée lui-même "behind the scene".
Si on les a créés soit même, pas de problème, on peut les libérer (exemple :
si on a créé un objet Range nommé myRange, il suffit de prévoir un Set
myRange = Nothing). Par contre, on n'a pas la main sur ceux qu'Excel
instancie lui-même.
La seule solution que j'avais trouvé à l'époque qui fonctionne était la
suivante :
Utiliser Excel dans une Sub appelée à partir de ma Form en définissant
toutes les variables concernant l'utilisation d'Excel dans cette procédure,
autrement dit, pas de variable publique ou de niveau module concernant
Excel. Ainsi, à la fin de l'exécution de cette Sub, tous les objets étaient
libérés.
Exemple :
Sub Command1_Click()
Call TravailleAvecExcel
End Sub
Sub TravailleAvecExcel()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
'Code
'Code
'Code
Set xlApp = Nothing
End Sub
Voilà, j'espère que ça t'aidera.
Cordialement.
Jean Yves