Como ejecutar una macro desde otra hoja

Tengo un libro con varias hojas, una de las cuales es una hoja auxiliar que tiene un botón para ejecutar una macro en dicha hoja.

Como puedo hacer que para que esta macro pueda ejecutarla desde otra hoja del mismo libro.

Por ejemplo:

Hoja 1: llamada Simples (es la hoja auxiliar donde tengo el botón macro) el objetivo es poder ocultar la hoja

Hoja 8: llamada Final (en esta hoja quiero poner el botón de la hoja 1, es decir que mi objetivo es que desde la hoja 8 poder ejecutar la macro que debe ejecutarse en la hoja 1.

2 Respuestas

Respuesta
1

Para ejecutar una macro en una hoja desde otra hoja del mismo libro, debes seguir los siguientes pasos:

  1. Abre la hoja en la que deseas insertar el botón para ejecutar la macro (en este caso, la hoja Final).

  2. Haz clic en la pestaña "Desarrollador" en la cinta de opciones. Si esta pestaña no aparece, ve a Archivo > Opciones > Personalizar cinta de opciones y marca la casilla "Desarrollador" en la lista de pestañas principales.

  3. Haz clic en el botón "Insertar" en la pestaña "Desarrollador" y selecciona el control de botón que desees utilizar.

  4. Haz clic derecho en el botón y selecciona "Asignar macro".

  5. Selecciona la macro que deseas ejecutar desde la hoja 1 y haz clic en "Aceptar".

  6. Ahora, cada vez que hagas clic en el botón en la hoja Final, se ejecutará la macro en la hoja 1.

Espero que esto te ayude a lograr lo que necesitas.

Buen día. Gracias por su aporte. Pero ya he intentado eso y me da error.

Pongo el botón como usted menciona en la hoja final, le asigno la macro que esta en la hoja Simples y al ejecutar no obtengo el resultado esperado en la hoja simples. sino que la orden para la hoja SIMPLES se aplica a la hoja final.

Gracias de igual manera por tomarse el tiempo en responder

Tenga usted un excelente dia

Investigaré adicionalmente.

Respuesta
1

Aclara por favor qué tipo de botón tenés en la hoja que llamás 'Simples' y que estará oculta.

Si se trata de un botón del tipo 'formulario', la macro estará en un módulo. Y por lo tanto puede ser llamada desde otras hojas.

Lo importante es cómo se identifica a la hoja donde se debe ejecutar el proceso.

Si será 'Simples', la macro debe indicarlo, salvo que primero la actives y la hagas visible.

Por ejemplo: esta macro dejará el resultado en la hoja desde donde se está ejecutando, quizás en Final.

Sub botonSimples()
Range("B2").Value = Date
End Sub

En cambio así, lo dejará en la hoja Simples, aunque esté oculta, no importa desde dónde llames a la macro.

Sub botonSimples()
Sheets("Simples").Range("B2").Value = Date
End Sub

Para un caso más complejo, lo ideal es declarar las hojas al inicio de la macro. Por ej:

Sub botonSimples()
'declarar cuál será la hoja de trabajo
Set hos = Sheets("Simples")
'a continuación todas las tareas indicarán esa hoja
'trabajar con sus celdas
hos.Range("B2") = Date
'hacer una búsqueda
Set busco = hos.Range("A:A").Find(dato)
'imprimirla
hos.PrintOut
'exportarla
hos.ExportAsFixedFormat xlTypePDF
End Sub

Te invito a mirar el video Nº 9 de mi canal: Macros compartidas (una misma macro ejecutada desde varios procesos)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas