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 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 ?
graphique et excel [ par seb ]
- Comment tracer depuis vb un graphique excel en nuage de point?- et comment ne faire apparaitre que le graphique (directement)? cad sans la feuille d
Créer un graphique dans Excel [ par PaulScholes ]
Je veux créer un graphique dans Excel 2000, à partir d'access 97Quand j'execute les commandes suivantes :ClasseurXLS.Sheets("Feuil2").SelectCharts.Add
VBA EXCEL: Données X et Y pour un graphique [ par Petitgus ]
Salut !Je cherche à insérer ds un graphique (nuage de pts) des séries directement à partir des valeurs contenues dans des variables (vecteurs ou matri
Livres en rapport
|
Derniers Blogs
[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE par tja
C'est le dernier principe des principes du Design Orienté Objet (The Principles of Object Oriented Design) fondés par Robert C. Martin plus connu sous le pseudonyme d'Uncle Bob.
l'image empruntée de LosTechies.
Je ne traite pas les principes dans...
Cliquez pour lire la suite de l'article par tja TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : VB.NETRE : VB.NET par nhervagault
Cliquez pour lire la suite par nhervagault HTML VERS PDF HTML VERS PDF par 20cent
Cliquez pour lire la suite par 20cent
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|