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 :

Afficher menu avec Clic Droit dans un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Afficher menu avec Clic Droit dans un userform
    Bonjour à tous,

    J'ai un userform avec des boutons.

    Comment faire pour ouvrir un menu personnalisé lorsque je clic sur un bouton avec le bouton droit de la souris ?

    Merci

    A+

    Damsmut

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir


    tu peux tester cet exemple pour un UserForm qui contient un bouton nommé CommandButton1.

    à placer dans le module objet du UserForm:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Option Explicit
     
    Dim Xa As Single
    Dim Ya As Single
     
     
    'Création de la barre d'outils lors du lancement du UserForm
    Private Sub UserForm_Initialize()
        Dim Barre As CommandBar
     
        Set Barre = CommandBars.Add("MenuUSF", msoBarPopup, False, True)
     
        With Barre.Controls.Add(msoControlButton, 1, , , True)
            .Caption = "Menu 01"
            .FaceId = 50
            'La procédure va appeler une macro nommée "Macro1", lorsque vous cliquerez
            'sur le bouton.
            .OnAction = "Macro1"
        End With
     
        With Barre.Controls.Add(msoControlButton, 2, , , True)
            .Caption = "Menu 02"
            .FaceId = 49
            'La procédure va appeler une macro nommée "Macro2", lorsque vous cliquerez
            'sur le bouton.
            .OnAction = "Macro2"
        End With
     
     
        With Me
            Xa = (.Width - .InsideWidth) / 2 + 8
            Ya = .Height - .InsideHeight - Xa + 24
        End With
    End Sub
     
     
     
    Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _
        ByVal Shift As Integer, ByVal X As Single, _
        ByVal Y As Single)
     
        Dim PosX As Single, PosY As Single
     
       'Button correspond au clic de la souris
          '1= clic gauche
          '2= clic droit
     
       If Button = 2 Then
            PosX = (Me.Left + Xa + CommandButton1.Left) * 4 / 3
            PosY = (Me.Top + Ya + CommandButton1.Top) * 4 / 3
     
            Application.CommandBars("MenuUSF").ShowPopup PosX, PosY
       End If
    End Sub
     
     
     
    'Supprime la barre d'outils lors de la fermeture du UserForm
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
        On Error Resume Next
        CommandBars("MenuUSF").Delete
    End Sub


    Dans un module standard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Sub Macro1()
        MsgBox "Essai 01"
    End Sub
     
     
    Sub Macro2()
        MsgBox "Essai 02"
    End Sub


    bon week end
    michel

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    Salut,

    Merci beaucoup ! Ton code est trop classe et trop balaise !! Je n'aurais jamais pu pondre un truc pareil ;-)


    Par contre un petit bémol quand même : comme tu utilises "CommandButton1_MouseMove" pour identifier le clic droit... le problème est le suivant : si je ne bouge pas la souris lorsque je clic droit, ça ne marche pas :-(

    Y'a t il moyen d'adapter ce code en utilisant "CommandButton1_Click" ??

    Merci

    A+
    Damsmut

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/05/2018, 10h18
  2. Ajouter Imprimer dans menu contex clic droit
    Par Wildou91 dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 14/02/2010, 16h44
  3. Sélection avec clic droit dans TTreeView
    Par senv33 dans le forum Débuter
    Réponses: 4
    Dernier message: 10/02/2010, 17h14
  4. Sélection d'une cellule dans uitable avec clic droit
    Par Pierrot92320 dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 14/05/2009, 14h40
  5. Réponses: 12
    Dernier message: 23/04/2007, 16h37

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