Menu Contextual

Quisiera saber como puedo añadir al menu contextual del botón derecho al pinchar una celda de la hoja de calculo, una "fila" que me ejecute una macro. Antes excel traía un "Editor de menús" pero creo que ya en excel 2000, y anteriores, no viene y hay que realizarlo mediante vba. Por más que lo intento con la ayuda no lo consigo. Vista la excelente respuesta a mi mensaje anterior me he animado ha hacer otra pregunta, espero que no lo consideres como un abuso de tu generosidad.

1 Respuesta

Respuesta
2
Ninguna pregunta es abuso, al contrario...
Para poner una nueva opción al menú contextual de las celdas, utiliza el siguiente código...
Public Sub MenuEnCelda()
Dim cbCelda As CommandBar
Dim mnuNuevo As CommandBarPopup
Dim mnuOpcion As CommandBarButton
Set cbCelda = CommandBars("Cell")
Set mnuNuevo = cbCelda.Controls.Add(msoControlPopup, , , 5, True)
mnuNuevo.Caption = "&Utilidades"
mnuNuevo.Tag = "Util"
Set mnuOpcion = mnuNuevo.Controls.Add(msoControlButton, , , , True)
mnuOpcion.Caption = "&Convertir a valor"
mnuOpcion.OnAction = "A_Valores"
Set mnuOpcion = mnuNuevo.Controls.Add(msoControlButton, , , , True)
mnuOpcion.Caption = "&Convertir a letras"
mnuOpcion.OnAction = "A_Letras"
Set mnuOpcion = mnuNuevo.Controls.Add(msoControlButton, , , , True)
mnuOpcion.Caption = "&Convertir a MAYUSCULAS"
mnuOpcion.OnAction = "A_Mayusculas"
Set mnuOpcion = Nothing
Set mnuNuevo = Nothing
Set cbCelda = Nothing
End Sub
Toma en cuenta que las macros A_Valor, A_Letras y A_Mayusculas, las debes de tener creadas previamente, claro, que en tu caso, pondrás el nombre de la macro que te interese ejecutar, en este caso creamos un submenú, con varias opciones, cada una ejecutara una macro, pero si solo quieres una opción que ejecute directamente una macro entonces prueba este código..
Public Sub MenuEnCelda()
Dim cbCelda As CommandBar
Dim mnuOpcion As CommandBarButton
Set cbCelda = CommandBars("Cell")
Set mnuOpcion = cbCelda.Controls.Add(msoControlButton, , , 1, True)
mnuOpcion.Caption = "&Convertir a valor"
mnuOpcion.OnAction = "A_Valores"
Set mnuOpcion = Nothing
Set cbCelda = Nothing
End Sub
Ahora, solo te resta decidir, si este menú esta activo para cualquier hoja, cualquier libro o solo los que tu quieras, esto es poca cosa, así que te queda de tarea.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas