commande CommandBar à supprimer

Le
Fredo P.
Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic sur
une cellule), cette commande démarre une procédure qui n'est plus solicité
et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo P.
Le #21474731
L'idée de départ était d'ajouter une option du menu qui se présente lors
d'un clic droit sur une cellule, le résultat n'étant pas celui escompté, je
souhaiterais revenir en arrière et supprimer le résultat de l'action
réalisée par cette routine
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Enat"
.Controls(1).Caption = "Facturer"
End With
MaBarre.ShowPopup
end sub

Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic
sur une cellule), cette commande démarre une procédure qui n'est plus
solicité et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp




michdenis
Le #21474791
Bonjour,

Pour mettre en place le code que tu as publié, il manque
au moins 2 items.

A ) Dans la feuille où tu veux faire intervenir cette barre d'outils
personnalisée comme menu contextuel lorsque tu fais un clic
droit sur une cellule, tu dois ajouter au module feuille de cette
feuille, un peut de code qui val comme ceci :

Dans l'exemple suivant, le menu contextuel personnalisé s'affichera
seulement si ton clic droit est fait sur une cellule à l'intérieur de la
Plage "A1:B25" . Si tu veux que cette barre apparaisse pour toute la
feuille, r neetiens que ces 2 lignes de code :
Cancel = True
CreatePopupMenu

Excel ne peut afficher qu'une barre au menu contextuel à la fois.
Par défaut, il affiche celle que l'on connaît.
Cancel = True est synonyme de l'annulation de l'événement en
conséquence, Excel n'affiche pas sa barre de menu, ce qui nous
laisse la chance d'appeler la nôtre.

Si tu veux te débarrasser du menu personnalisé lorsque tu cliques
dans la feuille, fais disparaître le code. Dans certains cas, le code peut
être placé dans le ThisWorkbook utilisant cet événement :
'----------------------------
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As Boolean)

End Sub
'----------------------------

'----------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("A1:B25")) Is Nothing Then
Cancel = True
CreatePopupMenu
End If

End Sub
'----------------------------


B ) Dans un module standard, tu copies ce qui suit :

'---------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
End Sub
'---------------------------
Sub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
End Sub

'---------------------------
Sub Macro1()
MsgBox "Bonjour"
End Sub
'---------------------------




"Fredo P." discussion : #
Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic sur
une cellule), cette commande démarre une procédure qui n'est plus solicité
et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp
Fredo P.
Le #21475321
Bien le bonjour MichDenis
Ton intervention m'a aidé dans la création, quoique j'aurais préférer
ajouter une option au menu prédéfini du Clicdroit.
Merci
"michdenis"
Bonjour,

Pour mettre en place le code que tu as publié, il manque
au moins 2 items.

A ) Dans la feuille où tu veux faire intervenir cette barre d'outils
personnalisée comme menu contextuel lorsque tu fais un clic
droit sur une cellule, tu dois ajouter au module feuille de cette
feuille, un peut de code qui val comme ceci :

Dans l'exemple suivant, le menu contextuel personnalisé s'affichera
seulement si ton clic droit est fait sur une cellule à l'intérieur de la
Plage "A1:B25" . Si tu veux que cette barre apparaisse pour toute la
feuille, r neetiens que ces 2 lignes de code :
Cancel = True
CreatePopupMenu

Excel ne peut afficher qu'une barre au menu contextuel à la fois.
Par défaut, il affiche celle que l'on connaît.
Cancel = True est synonyme de l'annulation de l'événement en
conséquence, Excel n'affiche pas sa barre de menu, ce qui nous
laisse la chance d'appeler la nôtre.

Si tu veux te débarrasser du menu personnalisé lorsque tu cliques
dans la feuille, fais disparaître le code. Dans certains cas, le code peut
être placé dans le ThisWorkbook utilisant cet événement :
'----------------------------
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As
Boolean)

End Sub
'----------------------------

'----------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

If Not Intersect(Target, Range("A1:B25")) Is Nothing Then
Cancel = True
CreatePopupMenu
End If

End Sub
'----------------------------


B ) Dans un module standard, tu copies ce qui suit :

'---------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
End Sub
'---------------------------
Sub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
End Sub

'---------------------------
Sub Macro1()
MsgBox "Bonjour"
End Sub
'---------------------------




"Fredo P." message de groupe de
discussion : #
Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic
sur
une cellule), cette commande démarre une procédure qui n'est plus solicité
et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp

michdenis
Le #21475401
Dans ce cas, c'est beaucoup plus simple.
La présence de la commande est présente seulement
pour les feuilles du classeur dans lequel tu écriras la
macro.

Dans un module standard :
'--------------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar

Set MaBarre = Application.CommandBars("Cell")
MaBarre.Reset
With MaBarre.Controls.Add
'Insère une ligne
.BeginGroup = True
'La macro associé à la commande
.OnAction = "Macro1"
'Nom de la commande
.Caption = "Commande1"
End With
End Sub
'--------------------------------

Sub Macro1()
Msgbox "Bonjour"
End Sub


Dans le ThisWorkbook :

Private Sub Workbook_Activate()
On Error Resume Next
Workbook_Deactivate
CreatePopupMenu
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("Cell").Controls("Commande1").Delete
End Sub





"Fredo P." discussion :
Bien le bonjour MichDenis
Ton intervention m'a aidé dans la création, quoique j'aurais préférer
ajouter une option au menu prédéfini du Clicdroit.
Merci
"michdenis"
Bonjour,

Pour mettre en place le code que tu as publié, il manque
au moins 2 items.

A ) Dans la feuille où tu veux faire intervenir cette barre d'outils
personnalisée comme menu contextuel lorsque tu fais un clic
droit sur une cellule, tu dois ajouter au module feuille de cette
feuille, un peut de code qui val comme ceci :

Dans l'exemple suivant, le menu contextuel personnalisé s'affichera
seulement si ton clic droit est fait sur une cellule à l'intérieur de la
Plage "A1:B25" . Si tu veux que cette barre apparaisse pour toute la
feuille, r neetiens que ces 2 lignes de code :
Cancel = True
CreatePopupMenu

Excel ne peut afficher qu'une barre au menu contextuel à la fois.
Par défaut, il affiche celle que l'on connaît.
Cancel = True est synonyme de l'annulation de l'événement en
conséquence, Excel n'affiche pas sa barre de menu, ce qui nous
laisse la chance d'appeler la nôtre.

Si tu veux te débarrasser du menu personnalisé lorsque tu cliques
dans la feuille, fais disparaître le code. Dans certains cas, le code peut
être placé dans le ThisWorkbook utilisant cet événement :
'----------------------------
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As
Boolean)

End Sub
'----------------------------

'----------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

If Not Intersect(Target, Range("A1:B25")) Is Nothing Then
Cancel = True
CreatePopupMenu
End If

End Sub
'----------------------------


B ) Dans un module standard, tu copies ce qui suit :

'---------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
End Sub
'---------------------------
Sub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
End Sub

'---------------------------
Sub Macro1()
MsgBox "Bonjour"
End Sub
'---------------------------




"Fredo P." message de groupe de
discussion : #
Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic
sur
une cellule), cette commande démarre une procédure qui n'est plus solicité
et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp

Fredo P.
Le #21478481
Bien, merci c'est ok.
"michdenis" %
Dans ce cas, c'est beaucoup plus simple.
La présence de la commande est présente seulement
pour les feuilles du classeur dans lequel tu écriras la
macro.

Dans un module standard :
'--------------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar

Set MaBarre = Application.CommandBars("Cell")
MaBarre.Reset
With MaBarre.Controls.Add
'Insère une ligne
.BeginGroup = True
'La macro associé à la commande
.OnAction = "Macro1"
'Nom de la commande
.Caption = "Commande1"
End With
End Sub
'--------------------------------

Sub Macro1()
Msgbox "Bonjour"
End Sub


Dans le ThisWorkbook :

Private Sub Workbook_Activate()
On Error Resume Next
Workbook_Deactivate
CreatePopupMenu
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("Cell").Controls("Commande1").Delete
End Sub





"Fredo P." message de groupe de
discussion :
Bien le bonjour MichDenis
Ton intervention m'a aidé dans la création, quoique j'aurais préférer
ajouter une option au menu prédéfini du Clicdroit.
Merci
"michdenis"
Bonjour,

Pour mettre en place le code que tu as publié, il manque
au moins 2 items.

A ) Dans la feuille où tu veux faire intervenir cette barre d'outils
personnalisée comme menu contextuel lorsque tu fais un clic
droit sur une cellule, tu dois ajouter au module feuille de cette
feuille, un peut de code qui val comme ceci :

Dans l'exemple suivant, le menu contextuel personnalisé s'affichera
seulement si ton clic droit est fait sur une cellule à l'intérieur de la
Plage "A1:B25" . Si tu veux que cette barre apparaisse pour toute la
feuille, r neetiens que ces 2 lignes de code :
Cancel = True
CreatePopupMenu

Excel ne peut afficher qu'une barre au menu contextuel à la fois.
Par défaut, il affiche celle que l'on connaît.
Cancel = True est synonyme de l'annulation de l'événement en
conséquence, Excel n'affiche pas sa barre de menu, ce qui nous
laisse la chance d'appeler la nôtre.

Si tu veux te débarrasser du menu personnalisé lorsque tu cliques
dans la feuille, fais disparaître le code. Dans certains cas, le code
peut
être placé dans le ThisWorkbook utilisant cet événement :
'----------------------------
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, Cancel As
Boolean)

End Sub
'----------------------------

'----------------------------
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)

If Not Intersect(Target, Range("A1:B25")) Is Nothing Then
Cancel = True
CreatePopupMenu
End If

End Sub
'----------------------------


B ) Dans un module standard, tu copies ce qui suit :

'---------------------------
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
End Sub
'---------------------------
Sub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
End Sub

'---------------------------
Sub Macro1()
MsgBox "Bonjour"
End Sub
'---------------------------




"Fredo P." message de groupe de
discussion : #
Bonjour
J'ai effectué un essai de commande personnalisée (CommandBar par un clic
sur
une cellule), cette commande démarre une procédure qui n'est plus
solicité
et je n'ai pas trouvé la solution pour supprimer cette fonction.
Cet essai s'est inspiré de l'exemple sur Excelabo ci:
Sub CreatePopupMenu()
Dim MaBarre As CommandBar
DelPopupMenu
Set MaBarre = Application.CommandBars _
.Add(Name:="ClicDroit", Position:=msoBarPopup)
With MaBarre
.Controls.Add Type:=msoControlButton
.Controls(1).OnAction = "Macro1"
.Controls(1).Caption = "Commande1"
End With
MaBarre.ShowPopup
end subsub DelPopupMenu()
On Error Resume Next
Application.CommandBars("ClicDroit").Delete
end sub

Fredo P.
Optez pour le forum adéquat!
news://news.microsoft.com/microsoft.public.fr.excel
news://news.microsoft.com/microsoft.public.fr.Word
news://news.microsoft.com/microsoft.public.fr.windowsxp




Publicité
Poster une réponse
Anonyme