Accueil > Forum > > > > [VB6 + EXCEL 97] Le processus Excel reste en mémoire
[VB6 + EXCEL 97] Le processus Excel reste en mémoire
vendredi 16 décembre 2005 à 13:24:18 |
[VB6 + EXCEL 97] Le processus Excel reste en mémoire

Rrominet
|
Hello,
Je suis en train de faire une application d'affichage de statistiques via VB6 avec un affichage de graphique dans EXCEL97.
Je rencontre un problème lorsque j'exécute + d'une stat dans mon programme. En fait le processus "Excel" reste en mémoire et me met une erreur à partir de la 2sde exécution de mes stats, donc obligé de passer par [Ctrl]+[Alt]+[Suppr] pour le fermer...
Quelqu'un aurait une idée du problème ? Peut-être que je ferme mal mon fichier ?
Voilà le code de ma procédure :
Private Sub GenererGraphExcel(NomGraph As String, cheminGraphExcel As String, Condition as String) 'Fonction qui va générer un fichier Excel contenant le graph demandé Dim feuille As Worksheet '--> .Cells(Lig, Col) Dim graphique As Chart, fso As New FileSystemObject Dim rec As DAO.Recordset, i As Long, MonExcel As Object
On Error GoTo ErrGenererGraphExcel Set MonExcel = CreateObject("Excel.Application") MonExcel.Visible = False MonExcel.UserControl = True MonExcel.Workbooks.Open FileName:=App.Path & "\Reports\" & NomGraph & ".xls" Set feuille = MonExcel.Worksheets("Données") feuille.Cells(1, 1) = "Nom du responsable": feuille.Cells(1, 2) = "Nombre de devis" Set rec = CreateSnapshot(Condition) i = 3 While Not rec.EOF feuille.Cells(i, 1) = rec("Champ1"): feuille.Cells(i, 2) = rec("Champ2") rec.MoveNext i = i + 1 DoEvents Wend rec.Close 'Enregistrement du fichier et MAJ du graphique If fso.FileExists(App.Path & "\" & NomGraph & "_gen.xls") Then fso.DeleteFile App.Path & "\" & NomGraph & "_gen.xls", True 'On va modifier la plage de valeurs sources du graphique Set graphique = MonExcel.ActiveChart graphique.SetSourceData Source:=Sheets("Données").Range("A3:B" & CStr(i - 1)), PlotBy:=xlRows graphique.Refresh MonExcel.Workbooks(1).SaveAs App.Path & "\" & NomGraph & "_gen.xls" MonExcel.Workbooks(1).Close MonExcel.Workbooks.Open FileName:=App.Path & "\" & NomGraph & "_gen.xls" MonExcel.Visible = True GoTo Fin
ErrGenererGraphExcel: Select Case Err.Number Case 1004: 'SetSourceData du graphique Msgbox "Erreur, un processus Excel est déjà ouvert !", vbExclamation Case 70: 'Permission refusée If MsgBox("Impossible d'enregistrer l'état, le fichier " & App.Path & "\Reports\" & NomGraph & "_gen.xls est déjà ouvert !" & vbCrLf & "Cliquez sur Recommencer dès que le fichier est fermé.", vbRetryCancel) = vbRetry Then Resume Else GoTo Fin End If Case Else: If MsgBox("Erreur inattendue, cliquez sur Recommencer pour tenter une nouvelle fois l'opération." & vbCrLf & "Erreur n°" & Err.Number & " : " & Err.Description, vbRetryCancel) = vbRetry Then Resume Else GoTo Fin End If End Select
Fin: End Sub
Merci d'avance pour votre aide :-)
|
|
vendredi 16 décembre 2005 à 13:26:11 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

Rrominet
|
Oops, j'allais oublier, bizarrement mon programme me met une erreur "1004" ou "-2147417851" en me disant que "La méthode 'SetSourceData' de l'objet '_Chart' a échoué"...
Et ça me bloque que sur cette ligne. Malheureusement sans cette ligne mon graphe ne donne pas grand chose :-)
|
|
vendredi 16 décembre 2005 à 13:49:48 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

Rrominet
|
En fait j'ai du nouveau, il semblerait que quand je fini ma procédure je ne ferme pas mon objet de type "Excel.Application", ce qui fait que tant que je n'ai pas quitté mon appli principale, l'objet reste en mémoire et pose problème...
Comment ferme-t'on cet objet ?
MonExcel.Close me jette...
Encore merci pour vos (futures) réponses ;-)
|
|
vendredi 16 décembre 2005 à 13:51:51 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

pseudoOM
|
Oui j'ai exactement le même problème mais avec Excel 2000 ! Je ne sais pas pourquoi, pourtant je met bien " nomObjetExcel.quit" quand j'ai fini mes opérations mais le processus reste quand même en mémoire. Bizar quand même! Désolé mais je ne sais pas t'aider plus ! Peut être que quelqu'un d'autre le pourra (et pas la même occasion, m'aider aussi) !  pseudoOM 
|
|
vendredi 16 décembre 2005 à 15:29:47 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

rooridge
|
Salut,
il faut d'abord fermer le/les workbook(s) en faisant : "monObjetExcel.workbooks(i).close 0" "0" pour fermer sans sauvegarder.
Puis killer le processus en faisant : "monObjetExcel.Application.Quit"
Sans oublier l'objet : "set monObjetExcel = nothing"
Comme dirait jean claude convenant, "j'ai bon là, nan ?"
++, rooridge.
|
|
vendredi 16 décembre 2005 à 15:35:27 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

eldim
|
Bonjour,
Y a déja des tas de sujet la dessus... Plusieurs solutions : Kill du proces excel
ou plus simple Encapsuler toutes les variables et les événement Excel dans une même class Attention à ne pas mettre ta variable de class public Et Excel se terminera proprement...
|
|
vendredi 16 décembre 2005 à 16:10:24 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

Rrominet
|
Pour l'instant, pour me dépanner j'ai fait un exécutable séparé qui s'exécute pour chaque stat et qui se ferme automatiquement après l'avoir générée, Ca fonctionne sans problème !
Mais je vais tester la solution de rooridge, le Set monObjet = Nothing est pas bête :-) Je n'y avais pas pensé !!
Pour ce qui est de killer le processus eldim, si jamais mon client a ouvert un Excel manuellement entre temps, je ne pourrais pas savoir lequel killer. Et si je kill les 2, ça lui ferme aussi le sien sans sauvegarder. C'est un peu trop "hard" comme solution, même si j'y avais songé en dernier recours...
Merci pour vos réponses ;-)
|
|
vendredi 16 décembre 2005 à 16:17:45 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

Rrominet
|
Je viens de tester vos solutions.
Malheureusement aucune ne fonctionne... Même le KillProcess me fait quand même une erreur sur la méthode "~" de l'objet "~" qui a été déchargée, alors que je recrée bien un objet de A à Z (comme la première fois quoi).
Je vais rester sur mon petit exécutable indépendant, ce sera moins pratique mais au moins ça tourne ;-)
Merci quand même pour vos réponses !!
|
|
vendredi 16 décembre 2005 à 16:24:45 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire
|
lundi 19 décembre 2005 à 12:14:18 |
Re : [VB6 + EXCEL 97] Le processus Excel reste en mémoire

pseudoOM
|
Ok ! Moi j'ai testé la solution de rooridge et elle fonctionne ! Merci beaucoup !  pseudoOM 
|
|
Cette discussion est classée dans : excel, graphique, rec, monexcel, nomgraph
Répondre à ce message
Sujets en rapport avec ce message
graphique surface 2D/3D EXCEL [ par jbbaudouin ]
Bonjour à tous, Je voudrais tracer un graphique 2D/3D sur execl juste avec l'interface graphique. Mes donneés sont les suivantes : SFE CR
Approximation d'une courbe "particulière" sous Excel par une droite affine [ par SERIEUXETCOOL ]
Bonjour à tous, bonjour le Forum, Bien bien, me voici une nouvelle fois ici pour un nouveau besoin. Je donnerais un peu plus loin des éléments de con
Probleme du reglage de Scale d'un graphique Excel [ par simmart ]
Bonjour, Je crée a partir de VB 2010 un graphique dans excel et je n'arrive pas a regler le minimumscale et maximumscale. J'ai bien sur ajouter la r
graphique Excel comme contrôle [ par J-F ]
Bonjour,Comment obtenir un contrôle sur un formulaire qui serait un graphique Excel généré par le programme et sur lequel on puisse cliquer pour attei
graphique excel [ par cat ]
Je fait un graphique sous excel a partir de VB, c'est génial, ca marche tres bien, mais je voudrais que le graph se mette à jour dans mon container ol
Modifier une info bulle dans un graphique excel [ par Jean ]
Serait-il possible de personnaliser les infos affichées dans une infobulle lorsque l'on pointe une série ou un point du graphiqueMerciJean
Exporter un graphique d'excel vers vb [ par Af@rnofo ]
Je fait un prog pour lequel j'ai besoin de stats, donc de faire des graphiques. Les graphiques se font dans excel et s'affiche dans excel, jusque là c
comment creer un graphique dans excel depuis VB [ par laurent3d ]
Bonjour,Comment creer un graphique dans une feuille excel depuis mon appli VBJ'arrive à remplir des cellules grace à une source de ce site, mais j'aur
Graphique pour excel.URGENT!!! [ par ben ]
Mon programme cree une feuille graphique.J'arrive a nommer mon graphique mais mon probleme est que je n'arrive pas a nommer ma nouvelle feuille graphi
Créer un graphique Excel à partir de VB [ par Silvia ]
Je travaille actuellement en VB6, et voudrais transférer des données sous forme de graphique sur Excel ?
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|