Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

personnaliser le menu contextuel

  • Initiateur de la discussion Initiateur de la discussion daniel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

daniel

Guest
Bonsoir le forum,

Grâce à un des (fabuleux !) packs de démo de Thierry, j'ai pu ajouter des macros au menu contextuel droit, mais j'aimerais ne faire apparaître que ces macros là, c'est à dire en enlevant les autres commandes 'par défaut'.

Est-ce possible ?

Merci à tous et bonne soirée,

Daniel
 
Bonsoir Daniel,

Utilise ce code pour effacer tous les menus puis ajoutes-y les tiens. Remplace le nom de la barre par le bon. Pour le compteur i à vérifier s'il boucle bien.

Code:
Sub Test()
Dim i As Integer
For i = 1 To CommandBars('MaBarre').Controls.Count 
    CommandBars('MaBarre').Controls(i).Delete
Next
End Sub

Pour réinitialiser le menu utiliser la méthode .Reset 😉

HTH

Message édité par: MrExcel, à: 01/03/2005 20:53
 
Bonsoir Daniel,


Tout d'abord, il convient d'être très prudent quand on manipule avec VBA les barres d'outils ou menus de l'application.

Ceci dit, tu trouveras ci-dessous une solution à adapter qui pourrait répondre à ta demande :

Dans l'objet ThisWorkbook :

Private Sub Workbook_Activate()
'Le menu perso est en fonction lorsque le classeur est actif
MenuContextPerso True
End Sub

Private Sub Workbook_Deactivate()
'Le menu par défaut est rétabli lorsque le classeur n'est plus le classeur actif
MenuContextPerso False
End Sub

Private Sub MenuContextPerso(Perso As Boolean)
Dim Menu As CommandBarControl
'Définition du menu perso...
If Perso Then
'Annuler Menu contextuel par défaut
For Each Menu In Application.CommandBars('Cell').Controls
Menu.Visible = False
Next Menu
'Créer le Menu contextuel personnalisé
With Application.CommandBars('Cell').Controls.Add(msoControlButton)
.Caption = 'Ma procédure...'
.BeginGroup = True
.FaceId = 593
.OnAction = 'MaMacro'
End With
Else
'Rétablissement du menu par défaut
Application.CommandBars('Cell').Reset
End If
End Sub


Cordialement.
 
Merci à tous les deux, j'ai réussi à faire ce que je désirais. Je serais trèsprudent en manipulant le code, promis ! (j'ai déjà une macro 'reset' par prudence...).

Bonne journée,

Daniel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Y
  • Question Question
Réponses
10
Affichages
7 K
YasinGS
Y
B
Réponses
2
Affichages
1 K
Brain Box
B
M
Réponses
3
Affichages
2 K
Martin1999
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…