cs_StanG
Messages postés13Date d'inscriptionlundi 30 juin 2008StatutMembreDernière intervention 3 septembre 2008
-
2 sept. 2008 à 17:25
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
cs_StanG
Messages postés13Date d'inscriptionlundi 30 juin 2008StatutMembreDerniè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.
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 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.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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