Vincular desde hoja Excel la lista de macros para modificar una macro o ejecutarla

Como vincular una lista de macros, como aparece en la imagen, que se encuentra en una hoja Excel, ¿con las macros que estan instaladas en el libro Excel? Se trata desde una hoja Excel donde hay una lista de macros de un libro, con un click ejecutar la macro o editarla para modificarla

1 Respuesta

Respuesta
3

H o l a:

Te anexo la macro para que al seleccionar una celda con nombre de macro, se ejecute la macro con el nombre seleccionado.

Pon la siguiente macro en los eventos de la hoja.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    u = Range("G" & Rows.Count).End(xlUp).Row
    If Not Intersect(Target, Range("G3:G" & u)) Is Nothing Then
        On Error Resume Next
        macro = Target.Value
        Run macro
        werr = Err.Number
        If Err.Number <> 0 Then
            MsgBox "La macro no existe", vbCritical, "ERROR"
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro


':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

¡Gracias! Miles

Me he quedado sin palabras!

super excelente

Muchas gracias Dante

Solo me queda una pregunta ya realizada y es la de ampliar el listado de hojas de un libro Excel, (que ayer me diste la respuesta con una pequeña macro) con los módulos o nombres de macros y la hoja a que pertenece ese modulo o macro

Dante,

La macro ejecuta perfectamente cualquier item del listado, pero como podría hacer click y editar la macro para modificarla, ¿en vez de ejecutarla?

Gracias

Saludos

Quedaría así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    u = Range("G" & Rows.Count).End(xlUp).Row
    If Not Intersect(Target, Range("G3:G" & u)) Is Nothing Then
        On Error Resume Next
        macro = Target.Value
        'Run macro
        Application.Goto Reference:=macro
        werr = Err.Number
        If Err.Number <> 0 Then
            MsgBox "La macro no existe", vbCritical, "ERROR"
        End If
    End If
End Sub

Si puedes, crea otra pregunta para poner esta macro. Para que quede evidencia de cómo se puede ir a modificar una macro.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas