Fermeture excel

cs_StanG Messages postés 13 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 septembre 2008 - 2 sept. 2008 à 17:25
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 6 sept. 2008 à 17:34
Bonjour,

Je suis en train de faire un programme de gestion d'élèves en VB6 et dans cette gestion, je crée des cartes d'étudiant et des certifs sous excel.
La création se passe super bien mais mon problème vient de la fermeture d'excel.
Quand je crée des certifs, où il n'y a que du textes, le fichier excel s'ouvre et quand je clique sur la croix pour fermer, pas de soucis, excel se ferme et le processus se termine (que je fasse une sauvegarde ou non).
En revanche, pour les cartes où il y a des images (que je colle avec activesheet.insert.picture ....), quand je referme le fichier excel (toujours manuellement) en cliquant sur la croix rouge, il ferme excel mais le processus continue, ce quie empêche de recréer de nouvelles cartes.
Donc pour faire bref, manuellement, je ne peux pas fermer correctement excel quand je crée les cartes.

Avez vous une idée du problème ?

Merci d'avance.

7 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 sept. 2008 à 17:47
salut,

sans code, pas facile...

2 pistes dans la FAQ :
Q : [doc/faq.aspx#vb_doevents Code : Mon application freeze lors d'une
longue opération, comment y rémedier]
Q : [doc/faq.aspx#vb_unload6 Code : Lors de la fermeture de mon appli
VB6, le processus semble toujours en cours d'exécution, pourquoi]

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_StanG Messages postés 13 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 septembre 2008
2 sept. 2008 à 18:32
Je n'ai pas mis de code parce que je me demande si le problème viens vraiment des codes VB6 ou de excel
sinon, les codes sont :
Dim adresseEcole As String, dateeleve As String, cheminaccès As String
Dim Wrd As Object, wbExcel As Object, wsExcel As Object
Dim pt As Integer, pb As Integer, i As Integer, j As Integer, u As Integer, nbreligne2 As Integer
Set Wrd = CreateObject("Excel.Application")
Set wbExcel = Wrd.Workbooks.Open("c:\logicielPP\cartes.xls")
Set wsExcel = wbExcel.Worksheets("cartes")

Ensuite, je mets pleins de codes pour écrire des infos dans ces cellules excel, joindre des images (photos des élèves), etc ....
en utilisant les codes style:
wsexcel.cells(1,1) = "Nom de l'élève" .....

Formpatientez.Hide
Wrd.Visible = True

Et donc à partir du moment où excel est affiché, si je le ferme par le biais de la croix rouge, je comprend pas pourquoi il ne veut pas se fermer correctement.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
2 sept. 2008 à 22:07
Salut,

Cela me parait normale car le processus excel est lié a ton appli VB6 par tes variables objet. De plus il est probable que cela soit aussi du au fait qu'en VB6 les variables objet doivent erte vidées et en particulié ici la variable Wrd ors en ferment excel par la croix rouge tu ne vides rien.
je ne sais pas si cela pourrai fonctionner mais essai de vider tes vatriables avant d'affiche excel pour liberer le processus excel de l'appli VB6.
0
cs_StanG Messages postés 13 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 septembre 2008
2 sept. 2008 à 22:26
salut,

merci de ton aide mais comment je fais pour vider des variables ? est-ce avec nothing ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 sept. 2008 à 22:51
salut,

effectivement :
Set wsExcel =  Nothing
Set wbExcel = Nothing
Set Wrd = Nothing

(précisément ce qui est indiqué dans les liens ^^)

cependant après tests, mon VB6 ne plante pas même sans destruction...
VB6 SP6 , référence MS Excel 9.0

++
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_StanG Messages postés 13 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 07:09
salut,

j'avais déjà essayé ça mais ca ne change rien, mon excel ne se ferme toujours pas correctement.

est-ce que ca ne serait pas du au fait que j'active une cellule pour coller des images comme ça ?

wsExcel.Cells(u + 1, 2).Select
ActiveSheet.Pictures.Insert ("c:\logicielPP\icones\logo.jpg")
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 sept. 2008 à 17:34
Plutôt que d'utiliser Hide, essaie plutôt Unload
C'est possible qu'Excel conserve cette fenêtre "hidden" comme un objet actif, même après la fermeture (?)

Si tu fais du copier/coller, assure-toi d'utiliser CutCopyMode = False pour ne pas conserver la surbrillance et éviter les erreurs de fermeture.

quelques idées comme ça...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous