IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Fermeture d'excel


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut [VB.NET] Fermeture d'excel
    Bonjour,

    Je pilote excel depuis vb.net, et j'ouvre l'application de cette manière la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    excel_application = New Microsoft.Office.Interop.Excel.Application
    excel_document = excel_application.Workbooks.Add
    
    et je le ferme de cette methode la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'enregistre et libère l'espace en mémoire
    excel_document.Save()
    excel_document.Close()
    excel_feuille = Nothing
    excel_document = Nothing
    excel_application.Quit()
    excel_application = Nothing
    
    Mais le problème c'est que le processus d'excel reste ouvert. Donc après qu'il est ouvert une 20ène de fois, ben le PC il devient un peu plus lent... (J'arrivait à 1,5 Go de mémoire utilisée, alors que j'ai 1 Go... )

    Est-ce que quelqu'un pourrait me dire ce que je fais de faux?

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Vous m'avez oublier?

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Non, mais toi, tu as oublié les règles du forum: http://www.developpez.net/forums/showthread.php?t=31917


    A+

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Désolé, j'oublie toujours d'indiquer dans le titre que c'est du VB.NET

    A part ça, est-ce que quelqu'un aurait une solution? Ou si m'a question manque de clareté, dites le moi.

    Merci d'avance

  5. #5
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    tu dois avoir une référence implicite dans ton code de manipulation Excel

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Merci pour ta réponse.

    Mais je sais pas oû pourrait être cette erreur car j'ai encore controler, je fais bien toujours la même chose. Voici les instructions que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    excel_application = New Microsoft.Office.Interop.Excel.Application
    excel_document = excel_application.Workbooks.Add
    excel_document.Sheets(3).delete()
    excel_document.Sheets(2).delete()
    excel_feuille = excel_document.Sheets(1)
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    excel_feuille.PageSetup.LeftMargin = conversion_centimetre_en_point(0.3)
    excel_application.Columns("A").ColumnWidth = 7.6
    excel_application.Range("A1", "Z999").Font.Size = 8
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    excel_application.Rows(ligne_en_tete & ":" & ligne_en_tete).RowHeight = conversion_centimetre_en_point(1)
    excel_application.Selection.Borders(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous
    excel_feuille.Shapes.AddPicture("mon image", Microsoft.Office.Core.MsoTriState.msoCTrue, Microsoft.Office.Core.MsoTriState.msoTrue, conversion_centimetre_en_point(0.6), conversion_centimetre_en_point(0.4), conversion_centimetre_en_point(2.7), conversion_centimetre_en_point(1.1))
    excel_application.Selection.merge()
    
    Et voici aussi comment j'ai déclarer mes trois variables pour excel dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Module objet
    Public excel_application As Microsoft.Office.Interop.Excel.Application
    Public excel_document As Microsoft.Office.Interop.Excel.Workbook
    Public excel_feuille As Microsoft.Office.Interop.Excel.Worksheet
    EndModule
    
    Donc est-ce que tu le problème pourrais venir qu'une fois j'utilise excel application à la place de excel_feuille ou de excel_document?

    Car j'utilise en général excel_application, mais quand je n'y trouve pas la fonction, j'utilise après excel_document ou excel_feuille.

    Merci d'avance pour ta précieuse aide

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    J'ai lu, mais j'ai rien vu que je faisait faux. Alors je fais quoi de faux???

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Le tag dans le titre de ton premier message....

  9. #9
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Ben quoi, c'est du VB.NET, alors j'ai mis [VB.NET]!!!

  10. #10
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Personne ne voit le problème?

  11. #11
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Ton code a l'air correct, il n'y a rien d'autre ?

  12. #12
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Ouai, d'autres bout de code, mais il est partout de cette manière là.

    Est-ce que le problème pourrait venir de ma déclaration des objet excel_application, excel_feuille et excel_document que je déclare en Public dans un autre module?

  13. #13
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    J'ai essayé ce tout petit bout de code et mon process excel reste ouvert, donc je dois faire qqch de faux lors de la fermeture...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim excel_app As Microsoft.Office.Interop.Excel.Application
    Dim excel_doc As Microsoft.Office.Interop.Excel.Workbook
    Dim excel_feu As Microsoft.Office.Interop.Excel.Worksheet
    excel_app = New Microsoft.Office.Interop.Excel.Application
    excel_doc = excel_app.Workbooks.Add
    excel_feu = excel_doc.Sheets(1)
     
    excel_doc.Close()
    excel_app.Quit()
    excel_feu = Nothing
    excel_doc = Nothing
    excel_app = Nothing

  14. #14
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    attention, Excel va peut être rester ouvert un moment puisque la référence ne sera effectivement détruite que lors de la libération réelle de la variable. En VB 2005 tu peux faire un Using pour forcer la destruction

  15. #15
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Merci pour l'info, mais je vois vraiment pas comment utiliser le Using. J'ai essayé de la même methode que nothing, mais que né ni...

  16. #16
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Je t'ai dit une connerie puisqu'Excel n'implémente pas IDisposable

  17. #17
    Membre habitué
    Inscrit en
    Novembre 2003
    Messages
    533
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Novembre 2003
    Messages : 533
    Points : 180
    Points
    180
    Par défaut
    Désolé, mais j'étais sur un autre projet.

    Alors je dois t'avouer que j'ai rien compris à ton dernier message...

Discussions similaires

  1. [VB.NET]Fermeture d'excel dans le gestionnaire
    Par Yolak dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/01/2008, 10h50
  2. [VB.NET] Fermeture excel
    Par andlio dans le forum VB.NET
    Réponses: 3
    Dernier message: 22/11/2006, 21h42
  3. probleme de fermeture d'excel
    Par passie dans le forum Access
    Réponses: 2
    Dernier message: 08/11/2005, 19h34
  4. Fermeture Fichier Excel
    Par beurnoir dans le forum Access
    Réponses: 22
    Dernier message: 28/10/2005, 16h22
  5. [VB.NET] [Winform] DataGrid Excel et CheckBox
    Par mic56 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/06/2004, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo