Menu personnalisé

aristote67

XLDnaute Nouveau
Bonsoir

Dans un post précédent je demandais comment créer un menu personnalisé dans Word.


PMO2 m'a apporté une solution parfaite.
Création d'un menu personnalisé dans Word accessible par un clic droit de la
souris.

Le code réalisé par PMO2 rend ce menu uniquement accessible dans le doc ou est installé la macro.
Toute autre cession word ouverte est avec son menu classique.

Est -il possible d'avoir un menu personnalisé uniquement dans le classeur auquel il est destiné.
Les autres classeurs ouvert ayant leur menu classique
et si oui comment s'y prendre.

J'ai essayé d'adapter le code à excel mais sans résultat concluant

Cordialement à tous :)
 

kjin

XLDnaute Barbatruc
Re : Menu personnalisé

Bonsoir,
Ajoute 2 boutons dans un sous-menu "Mon menu" du menu cellule (click droit)
Dans le module de Thisworkbook...
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("Mon menu").Delete
On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim menuB As CommandBarPopup, btnU As CommandBarButton, btnL As CommandBarButton
On Error Resume Next
With Application
    Set menuB = .CommandBars("Cell").Controls("Mon menu")
    If menuB Is Nothing Then
        On Error GoTo 0
        Set menuB = .CommandBars("Cell").Controls.Add(msoControlPopup)
        With menuB
            .Caption = "Mon menu"
            Set btnU = menuB.Controls.Add(msoControlButton)
            Set btnL = menuB.Controls.Add(msoControlButton)
            With btnU
                .Style = msoButtonCaption
                .Caption = "Unité"
                .OnAction = "InserU"
            End With
            With btnL
                .Style = msoButtonCaption
                .Caption = "Lot"
                .OnAction = "InserL"
            End With
        End With
    End If
End With
End Sub
...et dans un module standard
Code:
Sub InserU()
With Selection
    .Value = "[*" & .Value & "]"
End With
End Sub

Sub InserL()
With Selection
    .Value = "[[" & .Value & "]]"
End With
End Sub
A+
kjin
 

aristote67

XLDnaute Nouveau
Re : Menu personnalisé

Bonsoir

Merci de ta réponse,

Sans doute me suis je mal expliqué

Mon problème n'est sur la mise en place du menu en tant que tel,

Mais sur le fait que celui ci ne soit disponible que dans le Classeur auquel il est destiné

Si d'autres classeurs sont ouvert faire en sorte que ce menu personnalisé ne soit pas disponible.

Peut être suis je plus explicite

Le lien renvoyait à un post où un menu personnalisé dans word n'était dispo que dans le doc ou la macro était installé.

Très Cordialement

Et merci de ta réponse:)
 

kjin

XLDnaute Barbatruc
Re : Menu personnalisé

Bonsoir,
Dans le module Thisworkbook, ajoutes
Code:
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
On Error Resume Next
Application.CommandBars("Cell").Controls("Mon menu").Delete
On Error GoTo 0
End Sub
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji