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 :

Problème Fermeture formulaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut Problème Fermeture formulaire
    Bonjour le forum,

    j'ai un petit soucis qui est celui-ci :
    Je souhaite que lorsque l'utilisateur appuie sur la croix rouge, l'application entière se ferme , jusqu'à là j'ai réussi avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     
            ActiveWorkbook.Save 'Sauve le classeur
            Application.Quit 'Quitte Excel
     
    End Sub
    Or à un moment, je fais un Unload Me afin de revenir sur le classeur actif mais il prend cette instruction comme une demande de "Quitter l'application". Est-il possible d'utiliser query_close juste pour la croix rouge et non pour un unload me ?

    Cordialement,

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    As-tu regardé du côté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvent
    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Invité
    Invité(e)
    Par défaut
    bonjour,
    définis une variable qui change le comportement de UserForm_QueryClose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Nofermer As Boolean
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     if  Nofermer= false then
            ActiveWorkbook.Save 'Sauve le classeur
            Application.Quit 'Quitte Excel
    end if
    End Sub
     
    Private Sub Fermer_Click()
    Nofermer = True
    Unload Me
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gado2600 Voir le message
    Bonjour,

    As-tu regardé du côté de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvent
    Cordialement,
    ça ne marche pas sur un UserForm!

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    bonjour,
    définis une variable qui change le comportement de UserForm_QueryClose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim Nofermer As Boolean
     
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
     if  Nofermer= false then
            ActiveWorkbook.Save 'Sauve le classeur
            Application.Quit 'Quitte Excel
    end if
    End Sub
     
    Private Sub Fermer_Click()
    Nofermer = True
    Unload Me
    End Sub
    Merci , sa marche parfaitement !

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Points : 412
    Points
    412
    Par défaut
    Tu peux plus simplement utiliser la variable CloseMode qui va valoir automatiquement 1 quand tu fermes par un "unload me" et 0 quand tu fermes par la croix

    Donc par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then 'si ça a été fermé par la croix, on demande confirmation puis on ferme l'application également, sinon on garde tout ouvert y compris le formulaire
        If MsgBox("Attention, cela va également fermer Excel, Continuer ?",vbYesNoCancel+vbExclamation,"Avertissement") = vbYes Then 
            ActiveWorkbook.Save
            Application.Quit
        Else 
            Cancel = 1 'on annule la fermeture du formulaire
        End If
    End If
     
    'On ne marque rien pour le cas ou CloseMode <> 0 car... on veut simplement que ça ferme le formulaire comme d'hab'
     
    End Sub
    Sinon ça marche ce qui a été proposé plus haut, mais ça fait doublon avec la variable automatique CloseMode... Pourquoi faire plus compliqué ? :p



    Quentin

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

Discussions similaires

  1. [AC-2007] Problème fermeture formulaire
    Par lio33 dans le forum IHM
    Réponses: 4
    Dernier message: 07/11/2011, 14h34
  2. Problème fermeture formulaire
    Par ThieBEN dans le forum VBA Access
    Réponses: 11
    Dernier message: 30/11/2007, 11h06
  3. problème fermeture formulaire
    Par guigui5931 dans le forum Access
    Réponses: 6
    Dernier message: 03/05/2006, 11h11
  4. [Struts] Problème de formulaire(s) ...
    Par djoukit dans le forum Struts 1
    Réponses: 8
    Dernier message: 10/03/2004, 23h48
  5. Réponses: 12
    Dernier message: 24/09/2003, 15h26

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