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

Macros et VBA Excel Discussion :

Fermer les workbooks ouverts automatiquement puis fermer Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Par défaut Fermer les workbooks ouverts automatiquement puis fermer Excel
    Bonjour !

    Je développe une petite appli sous Excel VBA qui ouvre un deuxième Workbook stocké dans la variable Public :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public WBdata As Workbook
    Ce que je souhaiterais c'est que lorsque l'utilisateur a fini d'utiliser mon appli, il la ferme via la croix rouge en haut à droite. Et donc que depuis cette manip', cela ferme le classeur WBdata puis ferme l'appli.

    Je pourrais tout simplement utiliser Application.quit mais si l'utilisateur a d'autres classeurs d'ouverts ça lui fermera le tout et je souhaiterai éviter ça. J'essaye donc de mettre en place un bout de code de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error GoTo suite
        ThisWorkbook.WBdata.Close False
    suite:
        ThisWorkbook.Save
     
        If (Workbooks.Count = 1) Then
            Application.Quit
        Else
            ThisWorkbook.Close False
        End If
    End Sub
    Mais je me retrouve avec mes classeurs bien fermés comme il faut, sauf qu'Excel reste ouvert quand même ! (Même si aucun autre classeur n'est ouvert)

    Nom : XL_Sans_WB.png
Affichages : 709
Taille : 99,3 Ko

    Comment je pourrais faire pour éviter que cela ne se produise ?

    Merci de votre attention.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    euh tu es sûr que ceci fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.WBdata.Close False
    WBdata étant déjà un classeur, il ne peut être l'objet enfant d'un autre classeur


    en corrigeant ceci, tu devrais donc avoir WBdata qui se ferme correctement, et qui résoudrait ton If/End If qui n'a jamais Workbooks.Count = 1
    enfin, je suis pas sûr que ce soit le seul problème, en ne voyant qu'un unique évènement

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2015
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2015
    Messages : 80
    Par défaut
    Oui ce code fonctionne, lorsqu'il est executé le classeur en question est bien fermé. Le On Error est ici au cas où l'utilisateur a déjà fermé ce classeur manuellement.

    De plus, avec un MsgBox, j'ai vérifié et le Workbooks.Count renvoi bien 1 comme attendu. Comme il est à 1, le "Application.quit" est appelé mais cela ferme uniquement le classeur restant (qui est donc le classeur de l'appli) mais Excel reste ouvert

Discussions similaires

  1. [FAQ] Fermer tous les formulaires ouverts
    Par guigui5931 dans le forum Contribuez
    Réponses: 19
    Dernier message: 15/02/2024, 17h57
  2. Réponses: 7
    Dernier message: 28/06/2013, 17h01
  3. fermer les sessions ouvertes
    Par medias401 dans le forum AS/400
    Réponses: 5
    Dernier message: 27/10/2009, 12h28
  4. Fermer les classeurs excel sauf celui actif
    Par Balian1412 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/10/2006, 11h35
  5. [VBA-E] Creer une collection contenant les workbook ouverts
    Par jarod_bx dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2006, 23h46

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