OVH Cloud OVH Cloud

Menu contextuel & Raccourci clavier

1 réponse
Avatar
Jerome Yvon
Bonjour,

Je rajoute dans le menu contextuel sous excel la fonction "Paste Transposed"
(voir macro ci-dessous).

Comment faire pour lui adjoindre un raccourci clavier ?

Sub InsereMenuContextuel()

With Application.CommandBars("Cell").Controls.Add(msoControlButton,
before:=5)
.Caption = "&Paste transposed"
.BeginGroup = True
.OnAction = "PasteTransposed"
End With

End Sub

Sub PasteTransposed()

On Error GoTo Fin:
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:=False, Transpose:=True
Fin:
End Sub

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

Tu peux utiliser la méthode MacroOptions

'====================== Sub test()
InsereMenuContextuel
Application.MacroOptions _
Macro:="PasteTransposed", _
ShortcutKey:="w"
End Sub

Sub InsereMenuContextuel()
On Error Resume Next
Application.CommandBars("Cell").Controls("Paste transpose&d").Delete
With Application.CommandBars("Cell").Controls.Add(msoControlButton,
before:=5)
.Caption = "Paste transpose&d"
.BeginGroup = True
.OnAction = "PasteTransposed"
End With

End Sub

Sub PasteTransposed()

On Error GoTo Fin:
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Fin:
End Sub
'======================
Ici, ta procédure PasteTransposed sera déclenchée par l'appui des touches
Ctrl+w.
L'affichage du menu contextuel est inutile pour que le raccourci clavier
fonctionne et il comporte lui-même une touche de raccourci (que j'ai modifiée
pour utiliser la lettre "d", la lettre "p" étant en conflit avec le raccourci
pour la commande Copier du menu).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je rajoute dans le menu contextuel sous excel la fonction "Paste Transposed"
(voir macro ci-dessous).

Comment faire pour lui adjoindre un raccourci clavier ?

Sub InsereMenuContextuel()

With Application.CommandBars("Cell").Controls.Add(msoControlButton,
before:=5)
.Caption = "&Paste transposed"
.BeginGroup = True
.OnAction = "PasteTransposed"
End With

End Sub

Sub PasteTransposed()

On Error GoTo Fin:
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone,
SkipBlanks:úlse, Transpose:=True
Fin:
End Sub