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 de gestion des menus [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Par défaut Problème de gestion des menus
    Bonjour à tous,

    Je rencontre actuellement un problème dans l'intégration de menu à mes applications en VBA Excel.

    Jusqu'à présent, je construisais mes menu à l'ouverture du fichier et je les détruisais à la fermeture grâce au méthodes workbook_Open et workBook_BeforeClose.

    Or, je viens de me rendre compte que la méthode workBook_BeforeClose est appelée avant la boite de dialogue proposant l'enregistrement du document s'il y a eu des modifications.
    Résultat: Mon menu est effacé, la boite de dialogue s'affiche.
    Problème, si je clicke sur annuler, je retrouve mon document mes le menu n'existe plus!!! (logique puisqu'il vient d'être supprimé...)

    Quelqu'un connaitrait-il le moyen de contourner ce problème:

    Ex: récupérer la réponse de la boite de dialogue de sauvegarde pour recréer le menu.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 25
    Par défaut
    Bonjour à tous,
    je répond à moi même pour que ça profite aux autres.

    L'idée est la suivante:

    la boite de dialogue de sauvegarde apparait après before_close lorsque la valeur workbook.saved est à false.

    l'idée est donc de couper l'herbe sous le pied à cette boite de dialogue en créant ça propre boite de dialogue de sauvegarde mais cette fois ci directement dans la routine before_close.

    Voilà le code:

    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
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error GoTo errorHandler
     
        Dim X As VbMsgBoxResult
            If Me.Saved = False Then
            X = MsgBox("Voulez-vous enregistrer les " & "modifications apportées à " & ThisWorkbook.name & ".", vbExclamation + vbYesNoCancel, "Attention")
            Select Case X
                Case vbYes
                    FermetureClasseur
                    Me.Save
                    Cancel = False
                Case vbNo
                    FermetureClasseur
                    Me.Saved = True
                    Cancel = False
                Case vbCancel
                    Cancel = True
            End Select
        End If
        Exit Sub
    errorHandler:
     
    End Sub
    c'est sioux et ça reste propre

    bonne journé à tous!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/05/2010, 08h23
  2. Gestion des menus?
    Par volontier dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/06/2006, 14h02
  3. [FLASH 8] Problème de gestion des clips.
    Par glingo dans le forum Flash
    Réponses: 4
    Dernier message: 09/03/2006, 16h17
  4. VB6 - gestion des menus d'une application
    Par lhirsute dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/01/2006, 19h17
  5. Probleme de gestion des menus
    Par Orahn dans le forum MFC
    Réponses: 5
    Dernier message: 18/11/2005, 13h07

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