Urgent:pb gestion excel à partir de vb

nikostaf Messages postés 35 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 5 mai 2004 - 8 sept. 2003 à 10:43
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009 - 8 sept. 2003 à 17:27
bonjour,

Ce que j'aimerais faire c'est lancer mon prog vb qu'il lance excel ,faire des aplli sous excel et qd j'en ait fini et que je quitte excel je me retrouve sous mon prog.si je met le .close ds la meme commande il va ouvrir l'excel puis le refermer de suite. voici mon code mais pour l'instant je peux ouvrir qu'une fois excel et vu que y a pas de .close y bug qd je réouvre.IL faut que j'arrete mon prog si je veux que ca remarche.

Public FichExcel As Excel.Application

Private Sub Command3_Click()

Dim blnRunning As Boolean
Dim fichier1 As String
On Error Resume Next
fichier1 = App.Path & "\translohr.xls"
'ouvrir le fichier excel selectionner
Set FichExcel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set FichExcel = CreateObject("Excel.Application")
blnRunning = False
Else
blnRunning = True
End If
'et FichExcel = CreateObject("Excel.Application")
FichExcel.Visible = True
Workbooks.Open FileName:=fichier1, Editable:=True

End Sub

4 réponses

cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
8 sept. 2003 à 13:08
Nanto

Salut,

ce que tu fais, c'est que tu ouvres Excel à l'ouverture de ton appli (form_load ou sub_main), et que tu fais toutes les manip dedans, puis tu le fermes lorsque tu ressorts de ton appli.

en clair tu le laisses tourner en tâche de fond.
penses simplement à relacher tes objets lorsque tu n'as plus besoin de Excel en faisant :
set objexcel = nothing
car si tu sors sans le faire, il reste des instances d'excel qui sont en mémoire (visible dans la gestion des processus sous w2000 ou XP).

voilà j'espère que ça t'aideras

@ pulse

Nanto
0
nikostaf Messages postés 35 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 5 mai 2004
8 sept. 2003 à 15:53
J'ai essayé ce que tu m'as dis je lance excel depuis mon vb et ensuite je ferme l'appli excel avec un command boutton,tout se ferme mais y reste tj en tache de fond (pocessus) et c'est seulement qd je ferme mon prog qu'excel s'arrete totalement.Si tu as une idée,perso j'ai boà essyer des trucs.merci c cool
0
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
8 sept. 2003 à 17:25
Nanto

au form_load tu fais :
set oExcel = CreateObject("excel.application")

ensuite tu travailles avec tes classeurs, tu les ouvres, tu les fermes,...

au form_unload tu fais :
oExcel.quit
puis
set oExcel = nothing <== cela te permet de relacher le handle sur l'objet Excel qui était chargé en mémoire. Donc ca vide ton appli excel de la mémoire.

il ne te restera plus rien en processus.

Voilà

@ pulse

Nanto
0
cs_Nanto Messages postés 32 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 21 décembre 2009
8 sept. 2003 à 17:27
Nanto

juste un oubli, n'oublie pas de déclarer ta varible oExcel en tant que variable globale si tu en as besoin dans toute ton appli, ou dans ton module/form au cas où, pour que tu utilises tout le temps la même variable.

Nanto
0
Rejoignez-nous