OVH Cloud OVH Cloud

Menu contextuel

4 réponses
Avatar
Guy72
Bonjour
Est-il possible de faire un menu contextuel personnalisé suivant les
dossiers utilisés.
Si oui, comment ?
Cordialement
Guy

4 réponses

Avatar
jps
re guy
tu veux dire un menu sous le clic droit dans une cellule?
je ne pense pas que tu puisses le faire différent selon le classeur, si
c'est ce que j'ai compris que tu veuilles faire
jps

"Guy72" a écrit dans le message de news:

Bonjour
Est-il possible de faire un menu contextuel personnalisé suivant les
dossiers utilisés.
Si oui, comment ?
Cordialement
Guy



Avatar
Guy72
Salut jps
Dans ce cas là, le mettre pour tout les dossiers.
Remplacer celui qui existe par un personnalisé
Cordialement
Guy

"jps" a écrit dans le message de news:

re guy
tu veux dire un menu sous le clic droit dans une cellule?
je ne pense pas que tu puisses le faire différent selon le classeur, si
c'est ce que j'ai compris que tu veuilles faire
jps

"Guy72" a écrit dans le message de news:

Bonjour
Est-il possible de faire un menu contextuel personnalisé suivant les
dossiers utilisés.
Si oui, comment ?
Cordialement
Guy







Avatar
jps
bonjour guy
je te donne copie de deux réponses parues sur ce forum il y a près de 40 000
ans puisque l'une est de LL et l'autre de Iznogood, brillants contributeurs
mais présentement aussi éteints que les volcans d'auvergne

de LL

Sub CréerMenu()
With Application.CommandBars("Cell").Controls.Add
.Caption = "Qui suis-je ?"
.OnAction = "QuiSuisJe"
End With
End Sub

Sub DétruireMenu()
Application.CommandBars("Cell").Controls("Qui suis-je ?").Delete
End Sub

Private Sub QuiSuisje()
MsgBox "Je suis la cellule " & ActiveCell.Address(0, 0)
End Sub

de Iznogood

Il n'y a pas de questions idiotes, mais seulement des réponses idotes.
En voici une :
Au lieu de bidoullier le menu "Cell",
crée un menu contextuel perso :

Private Sub Workbook_Open()
Dim bo As Variant
Dim ct As Variant
On Error GoTo Existe
Set bo = Application.CommandBars.Add("monMenu", msoBarPopup, , True)
With bo
Set ct = .Controls.Add(msoControlButton, , "Choix1", , True)
ct.Caption = "&Choix1"
ct.OnAction = "Choix1"
Set ct = .Controls.Add(msoControlButton, , "Choix2", , True)
ct.Caption = "C&hoix2"
ct.OnAction = "Choix2"
End With
Exit Sub
Existe:
On Error GoTo 0
End Sub

Crée bien sûr les macros Choix1, Choix2 etc

Affecte ensuite le ton menu contextuel à la feuille de ton choix
(Exemple ici, le menu contextuel ne s'affichera que pour les cellules de la
colonne A de la feuille considérée)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel
As Boolean)
If Target.Column = 1 Then
Cancel = True
Application.CommandBars("monMenu").ShowPopup
End If
End Sub
NDLR IMPORTANT
pour que le menu contextuel s'affiche quel que soit l'emplacement de
la cellule et quelle que soit la feuille, j'ai dû modifié la Private Sub
ci-dessus en utilisant
Private Sub Workbook_SheetBeforeRightClick
If Target.Cells = Activecell Then


good luck
jps
PS pour inhiber le menu contextuel natif d'excel, je pense qu'un coup de

Application.CommandBars("Cell").Enabled = False

devrait faire l'affaire mais attends la confirmation de ceux qui jouent dans
la cour des grands

"Guy72" a écrit dans le message de news:

Salut jps
Dans ce cas là, le mettre pour tout les dossiers.
Remplacer celui qui existe par un personnalisé
Cordialement
Guy

"jps" a écrit dans le message de news:

re guy
tu veux dire un menu sous le clic droit dans une cellule?
je ne pense pas que tu puisses le faire différent selon le classeur, si
c'est ce que j'ai compris que tu veuilles faire
jps

"Guy72" a écrit dans le message de news:

Bonjour
Est-il possible de faire un menu contextuel personnalisé suivant les
dossiers utilisés.
Si oui, comment ?
Cordialement
Guy











Avatar
Guy72
Merci jps
je crois que je vais regarder ça à tête reposé car cela me paraît compliqué.
Mais cela devrais aller, je suis sans doute de ces années la.
Cordialement
Guy

"jps" a écrit dans le message de news:

bonjour guy
je te donne copie de deux réponses parues sur ce forum il y a près de 40
000 ans puisque l'une est de LL et l'autre de Iznogood, brillants
contributeurs mais présentement aussi éteints que les volcans d'auvergne

de LL

Sub CréerMenu()
With Application.CommandBars("Cell").Controls.Add
.Caption = "Qui suis-je ?"
.OnAction = "QuiSuisJe"
End With
End Sub

Sub DétruireMenu()
Application.CommandBars("Cell").Controls("Qui suis-je ?").Delete
End Sub

Private Sub QuiSuisje()
MsgBox "Je suis la cellule " & ActiveCell.Address(0, 0)
End Sub

de Iznogood

Il n'y a pas de questions idiotes, mais seulement des réponses idotes.
En voici une :
Au lieu de bidoullier le menu "Cell",
crée un menu contextuel perso :

Private Sub Workbook_Open()
Dim bo As Variant
Dim ct As Variant
On Error GoTo Existe
Set bo = Application.CommandBars.Add("monMenu", msoBarPopup, , True)
With bo
Set ct = .Controls.Add(msoControlButton, , "Choix1", , True)
ct.Caption = "&Choix1"
ct.OnAction = "Choix1"
Set ct = .Controls.Add(msoControlButton, , "Choix2", , True)
ct.Caption = "C&hoix2"
ct.OnAction = "Choix2"
End With
Exit Sub
Existe:
On Error GoTo 0
End Sub

Crée bien sûr les macros Choix1, Choix2 etc

Affecte ensuite le ton menu contextuel à la feuille de ton choix
(Exemple ici, le menu contextuel ne s'affichera que pour les cellules de
la
colonne A de la feuille considérée)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel
As Boolean)
If Target.Column = 1 Then
Cancel = True
Application.CommandBars("monMenu").ShowPopup
End If
End Sub
NDLR IMPORTANT
pour que le menu contextuel s'affiche quel que soit l'emplacement de
la cellule et quelle que soit la feuille, j'ai dû modifié la Private Sub
ci-dessus en utilisant
Private Sub Workbook_SheetBeforeRightClick
If Target.Cells = Activecell Then


good luck
jps
PS pour inhiber le menu contextuel natif d'excel, je pense qu'un coup de

Application.CommandBars("Cell").Enabled = False

devrait faire l'affaire mais attends la confirmation de ceux qui jouent
dans la cour des grands

"Guy72" a écrit dans le message de news:

Salut jps
Dans ce cas là, le mettre pour tout les dossiers.
Remplacer celui qui existe par un personnalisé
Cordialement
Guy

"jps" a écrit dans le message de news:

re guy
tu veux dire un menu sous le clic droit dans une cellule?
je ne pense pas que tu puisses le faire différent selon le classeur, si
c'est ce que j'ai compris que tu veuilles faire
jps

"Guy72" a écrit dans le message de news:

Bonjour
Est-il possible de faire un menu contextuel personnalisé suivant les
dossiers utilisés.
Si oui, comment ?
Cordialement
Guy