Note: The other languages of the website are Google-translated. Back to English
English English

Comment ajouter un bouton personnalisé au clic droit / menu contextuel dans Excel?

Comme le montrent les captures d'écran ci-dessous, de nombreuses personnes ont tendance à ajouter leurs fonctions fréquemment utilisées au menu contextuel d'Excel afin d'utiliser rapidement ces fonctions en un seul clic à l'avenir. Cet article parle de l'ajout d'un bouton de code personnalisé au menu contextuel dans Excel.

Ajouter un bouton personnalisé au menu contextuel dans Excel avec le code VBA


Ajouter un bouton personnalisé au menu contextuel dans Excel avec le code VBA


Supposons que vous ayez créé un script VBA nommé MyMacro dans votre Excel, et que vous deviez maintenant ajouter cette fonction au menu contextuel pour exécuter le code simplement en cliquant dessus. Veuillez faire comme suit.

1. appuie sur le autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Ce classeur à gauche Le projet NetPoulSafe vitre. Et puis copiez et collez le code VBA ci-dessous dans le Ce classeur (code) fenêtre.

Code VBA: Ajouter un bouton personnalisé au menu contextuel dans Excel

Private Sub Workbook_Deactivate()
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
        End With
    On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim cmdBtn As CommandBarButton
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
            Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
        End With

        With cmdBtn
           .Caption = "MyMacro"
           .Style = msoButtonCaption
           .OnAction = "MyMacro"
        End With
    On Error GoTo 0
End Sub

Notes: Dans le code, veuillez tout remplacer «MyMacro» avec le nom de la macro que vous avez créé dans votre Excel.

3. appuie sur le autre + Q touches pour quitter Microsoft Visual Basic pour applications fenêtre.

Maintenant, vous revenez à l'interface Excel, après avoir cliqué avec le bouton droit sur une cellule, vous verrez que le nouveau bouton avec le nom spécifié est ajouté dans le menu contextuel comme illustré ci-dessous. Cliquez sur le bouton pour déclencher immédiatement la macro correspondante.


Articles connexes:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (15)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Ajouter le bouton VBA au menu contextuel fonctionne bien. Merci. Comment ajouter plus de boutons ? (pas bon en VBA, d'où la question).
Ce commentaire a été minimisé par le modérateur sur le site
Salut Vic,
Le code VBA suivant peut vous aider à résoudre le problème, veuillez essayer.

Sous-classeur privé_Deactivate ()
Dim xArrB comme variante
Dim xFNum en tant qu'entier
Dim xStr As String
On Error Resume Next
Avec application
xTablB = Tableau("MaMacro01", "MaMacro02", "MaMacro03")
Pour xFNum = 0 Vers UBound(xArrB)
xStr = xArrB(xFNum)
.CommandBars("Cell").Controls(xStr).Delete
XFNum suivant
Terminer par
En cas d'erreur GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim cmdBtn en tant que CommandBarButton
Dim xArrB comme variante
Dim xFNum en tant qu'entier
Dim xStr As String
On Error Resume Next
xTablB = Tableau("MaMacro01", "MaMacro02", "MaMacro03")
Pour xFNum = 0 Vers UBound(xArrB)
xStr = xArrB(xFNum)
Avec application
.CommandBars("Cell").Controls(xStr).Delete
Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
Terminer par
Avec cmdBtn
.Caption = xStr
.Style = msoButtonCaption
.OnAction = xStr
Terminer par
XFNum suivant
En cas d'erreur GoTo 0
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Cela ne fonctionne pas pour moi, j'ai fait exactement la même chose que la macro ci-dessus avec un seul menu, est-ce que ça marche pour quelqu'un d'autre ou est-ce que je fais quelque chose de mal ?

Merci
Ce commentaire a été minimisé par le modérateur sur le site
Ne fonctionne pas avec mon Excel 2013
Ce commentaire a été minimisé par le modérateur sur le site
Salut Yves, j'ai testé ce code sur Excel 2013 et ça marche bien. Avez-vous reçu une invite d'erreur ? J'ai besoin d'en savoir plus sur votre problème
Ce commentaire a été minimisé par le modérateur sur le site
Merci pour votre réponseMais ne fonctionne pas sur une table. Sur une cellule normale fonctionne parfaitement.
Ce commentaire a été minimisé par le modérateur sur le site
Salut yves, Le problème est clair maintenant, et j'ai besoin de temps pour le résoudre. S'il vous plaît, attendez. Merci pour votre avis.
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Merci
Cela fonctionne-t-il pour tous les classeurs même après le redémarrage d'Excel, ou uniquement pour le classeur sélectionné dans lequel la macro a été enregistrée ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Cela ne fonctionne que pour le classeur dans lequel la macro est enregistrée. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Размести код в отдельном модуле, для того чтобы это работало для всех документов
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Je déterre le sujet car j'ai un soucis, j'ai récupérer un fichier qui m'a remplacé le menu du clic droit et je ne sais pas comment revenir au menu par défaut...
Ça modifie le menu pour n'importer quel fichier excel. J'utilise excel 2016.

Je précise que le fichier coupable a un mot de passe pour accéder à son code VBA. Mot de passe qu'évidemment je ne possède pas..

Merci d'avance pour votre aide !!
Ce commentaire a été minimisé par le modérateur sur le site
Salut Olivier,
Désolé je ne comprends pas bien ce que tu veux dire. Voulez-vous revenir au menu normal du clic droit ?
Ce commentaire a été minimisé par le modérateur sur le site
Zdravím dokázal byste mi prosím někdo poradit s podobným problémem ? Po posledním updatu Office přibyla v excelu po stisknutí pravého tlačítka nad kopírovat a vyjmout volba hledat v nabídkách která mi tam vadí a chtěl bych jí odstranit. Dá se to udělat i obráceně a nějakou funkci odstranit?

merci
Ce commentaire a été minimisé par le modérateur sur le site
Salut Tomas,
Je n'ai pas rencontré cette situation. Pouvez-vous joindre une capture d'écran pour décrire plus clairement le problème que vous avez rencontré.
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés