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

VB 6 et antérieur Discussion :

Problème de non-fermeture de Excel.exe


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Problème de non-fermeture de Excel.exe
    Bonsoir,

    Je viens vous voir car j'ai un problème quant à la fermeture d'une feuille Excel via VB6.

    En effet, lorsque j'exécute mon code, le processus Excel.exe reste dans la table des processus...

    Voila mon code :

    Code Visual Basic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub BP_Valider_Click()
        Dim fichierExcel
        Dim wbExcel
        Dim i As Integer
     
     
        chemin = App.Path + "\BDGesport.accdb"
        Set base = OpenDatabase(chemin)
     
        Set fichierExcel = New Excel.Application
     
        fichierExcel.Workbooks.Open ES_LienFichier.Text
        Set wbExcel = fichierExcel.ActiveWorkbook
     
        For i = 1 To 3
            'List1.AddItem wbExcel.Worksheets(1).Range("A1").Value
        Next i
     
        fichierExcel.Quit
     
        Set wbExcel = Nothing
        Set fichierExcel = Nothing
     
        base.Close
    End Sub


    Seulement cette erreur n'apparait que lorsque la ligne :
    Code Visual Basic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List1.AddItem wbExcel.Worksheets(1).Range("A1").Value

    n'est plus en commentaire. Je me posais donc la question que cette ligne crée peut être une référence vers l'objet de type Excel Application ce qui ferait que le garbage collector ne supprime pas l'objet.

    Auriez-vous une idée d'où pourrez venir le problème et/ou de comment le résoudre s'il vous plait ?

    Merci beaucoup à vous d'avance et je vous souhaite de passer une excellente soirée !

  2. #2
    Membre actif Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Points : 226
    Points
    226
    Par défaut
    Tu peux essayer la fonction kill violent mais ça fonctionne

  3. #3
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Bonjour,

    je te conseille de faire une recherche sur ce forum avec les termes "fermeture Excel", tu trouveras plusieurs sujets Resolus, relatifs a ce probleme.

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Comme, c'est lié à une erreur de code et une non gestion des erreurs - par exemple :
    - absence de vérifications ( ex: workbooks.open myVar avec myVar non vérifiée)
    - incohérence dans la destruction d'objects
    etc.

    Rien que dans la partie de code que tu cites, quelques modifications
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Private Sub BP_Valider_Click()
        Dim fichierExcel  As Excel.Application
        Dim wbExcel As WorkBook
        Dim i As Integer
     
        'Base, chemin ' déclarations?
        chemin = App.Path + "\BDGesport.accdb"
        Set base = OpenDatabase(chemin)
     
        ' Auparavant Vérifier si Excel existant et Workbook non ouvert avec GetObject
        Set fichierExcel = New Excel.Application
     
        ' Vérifier si LienFichier.Text existe
        fichierExcel.Workbooks.Open ES_LienFichier.Text
        Set wbExcel = fichierExcel.ActiveWorkbook
        
    Set wbExcel =fichierExcel.Workbooks.Open( ES_LienFichier.Text)    
        For i = 1 To 3
            'List1.AddItem wbExcel.Worksheets(1).Range("A1").Value
        Next i
     
        fichierExcel.Quit
     
        Set wbExcel = Nothing
        Set fichierExcel = Nothing
        
        base.Close
    End Sub

  5. #5
    Membre actif Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Points : 226
    Points
    226
    Par défaut
    Citation Envoyé par Birmania Voir le message
    Seulement cette erreur n'apparait que lorsque la ligne :
    Code Visual Basic :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List1.AddItem wbExcel.Worksheets(1).Range("A1").Value
    C'est normale que cette erreur n'apparaît que lorsque tu as cette ligne active. Lorsque tu la mets en commentaire, le cycle d'ouverture et de fermeture d'excel s'effectue du début jusqu'à la fin. Mais lorsque tu passe par cette ligne (qui doit avoir un problème), tu stop le déroulement de ton programme par le bouton arrêt de vb, et du coup, tu ne fermes pas excel. Ce qui fait que excel est toujours actif dans le gestionnaire.
    Comme le signal DarkVader au dessus, il faut que tu gères les erreurs et que cela te ferme la session excel.

Discussions similaires

  1. [XL-2010] Problème variable non définie macro Excel réalisation courrier
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/03/2014, 14h38
  2. [XL-2003] Problème enregistrement et fermeture excel
    Par jalseth dans le forum Excel
    Réponses: 7
    Dernier message: 28/09/2009, 12h38
  3. Problème de fermeture d'excel
    Par zoom61 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/07/2008, 11h59
  4. Processus EXCEL;exe actif apres fermeture
    Par jamescook dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/10/2007, 12h49
  5. Problème d'évenement ! Fermeture non demandée.
    Par killprog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/02/2006, 11h18

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