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

VBA Access Discussion :

Comment fermer Excel proprement


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Comment fermer Excel proprement
    Bonjour,
    Après avoir ouvert excel via vba, Excel reste actif (visible dans taskmanager) et ne cloture que si je ferme mon application access. Comment forcer excel à fermer sans sortir de mon application? Voici le code que j'utilise (et qui ne marche pas):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim AppExcel As Object
     
        'Ouvrir excel
        Set AppExcel = New Excel.Application
     
         ' mes manip dans excel
     
        'Fermer excel
        AppExcel.Quit
        Set AppExcel = Nothing
    ' util???

    Merci!

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Merci de ...

    De quelle version d'Excel s'agit-il ?
    Et aussi quel service pack ?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonjour,

    Il est probable que tu références un objet Excel que tu ne libères pas et donc qui empêche la fermeture de ton objet principal "AppExcel".
    Par exemple, si tu as quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim xlWkb As Excel.WorkBook
    Set xlWkb = AppExcel.WorkBooks.Open("C:\MonFichier.Xls")
    et que tu ne fais pas, en sortant, quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xlWkb.Close True
    Set xlWkb = Nothing
    Tu risques ce genre de problèmes.

    Il faudrait que tu nous développes ton :


  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par EddiGordo Voir le message
    Bonjour,

    Il est probable que tu références un objet Excel que tu ne libères pas et donc qui empêche la fermeture de ton objet principal "AppExcel".
    Par exemple, si tu as quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim xlWkb As Excel.WorkBook
    Set xlWkb = AppExcel.WorkBooks.Open("C:\MonFichier.Xls")
    et que tu ne fais pas, en sortant, quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xlWkb.Close True
    Set xlWkb = Nothing
    Tu risques ce genre de problèmes
    Un n'invite pas forcément à faire appel à la méthode Close de l'objet Workbook surtout si un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.DisplayAlerts = False
    est invoqué !

    Par ailleurs, EddiGordo, il s'avère qu'RJDTGA libère bien son objet...

    J'ai demandé la version, en connaissance de cause, car une certaine version d'Office ne sait pas "killer" un process correctement lorsque que ce dernier est créé avec OLE.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Bonsoir Argyronet,

    Je m'excuse d'insister mais ce n'était qu'un exemple que je voulais citer et tu m'as mal compris (ou je me suis mal expliqué et je m'en excuse).

    Ce n'était pas l'utilisation de la méthode Close de l'objet workbook qui se voulait importante dans ma démonstration; je voulais plutôt mettre l'accent sur la libération de l'objet xlWkb instancié en exemple. Pour faire plus "propre", j'ai utilisé la méthode Close avant de procéder à cette libération. Ce qui à pu provoquer le quiproquo.

    Je persiste à affirmer haut et fort que créer une référence vers un objet interne à un objet Excel.Application sans la libérer empêchera la fermeture de celui-ci, même par .Quit, et ce avec ou sans DisplayAlerts... On peut d'ailleurs le vérifier facilement en pas à pas et en observant les processus dans le gestionnaire de tâches.

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par EddiGordo Voir le message
    ..........ou je me suis mal expliqué ........................ Ce qui à pu provoquer le quiproquo.
    Oui, c'est un peu ça en fait...

    Citation Envoyé par EddiGordo Voir le message
    Je persiste à affirmer haut et fort que créer une référence vers un objet interne à un objet Excel.Application sans la libérer empêchera la fermeture de celui-ci, même par .Quit, et ce avec ou sans DisplayAlerts... On peut d'ailleurs le vérifier facilement en pas à pas et en observant les processus dans le gestionnaire de tâches.
    Et là, c'est clair...
    IL fallait insister sur le d'où la nécessité que tu soulignes d'obtenir son code complet.
    Toutefois, de mon coté et à mon tour, je persiste à affirmer haut et fort que créer une référence vers un objet interne à un objet Application.xxxx Office peut, selon sa version, provoquer un comportement identique alors que tous les objets sont libérés et ce, que l'appel se fasse en Late ou en Early Binding.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment fermer proprement une instance d'Excel ouvert avec VB ?
    Par Teddy7 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2012, 16h23
  2. [VBA-E]Comment tuer Excel (proprement)
    Par MAGUIN dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/03/2007, 10h37
  3. Fermer Word proprement depuis excel
    Par Australia dans le forum VBA Word
    Réponses: 5
    Dernier message: 21/11/2006, 09h37
  4. comment fermer un fichier Excel depuis Access?
    Par audrey_desgres dans le forum Access
    Réponses: 14
    Dernier message: 21/06/2005, 12h43
  5. [wxPython][wxFrame]Comment fermer proprement une frame ?
    Par Screameur dans le forum wxPython
    Réponses: 4
    Dernier message: 12/05/2005, 19h49

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