Ejecutar macro en excel 2003 desde un formulario

Sers. T. E.

La consulta es la siguiente:

Trato de ejecutar una macro que se encuentra en la Hoja1 de Excel 2003, desde un Formulario

Al ejecutar el formulario y hacer clic en el Botón, muestra el Mensaje:

No se ha definido Sub o funcion

2 respuestas

Respuesta
1

Si lo que llamas Formulario es un conjunto de celdas diseñadas en la Hoja1 debieras indicar qué tipo de botón colocaste allí (¿de barra Formulario o barra ActiveX? )

Si es un botón de Formulario la macro se coloca en un módulo. Si es ActiveX se coloca en la misma hoja quedándote algo así:

Private Sub CommandButton1_Click()
'instrucciones 

End Sub

Ahora, si por Formulario se trata de un Userform, los botones deben llamar a macros ubicadas en el mismo Userform o en un módulo. Por ejemplo:

Private Sub CommandButton4_Click()
Call buscoArchivo        'esta macro se encuentra en el mismo UF o en un módulo.
End Sub

Te invito a leer más sobre el tema 'Dónde colocar una macro' en este link http://aplicaexcel.galeon.com/macros.htm

Sdos.

Elsa

He logrado codificar el Proyecto de la siguiente forma:

En la Hoja1 ingrese el los siguientes procedimientos:

Sub OpenForm()

UserForm1.Show

End Sub

Sub MacroHoja1()

MsgBox "Macro ejecutada desde UserForm", vbInformation, "Macro"

End Sub

En el Formulario “UserFomr1” :

Private Sub CommandButton1_Click()

 Application.Run "RunMacro.xls!Hoja1.MacroHoja1" ‘El cual ejecuta la Macro que se encuentra en la Hoja1.

End Sub

Coloque un Dibujo “Rectángulo” en la hoja, el cual al hacerle clic  abre el formulario y a continuación presionando el CommandButton1 ejecuta la macro que se encuentra en la Hoja1.

¡Gracias! 

Entonces así es cómo se verá al presionar el botón del Userform:

Y la instrucción del CommandButton del Userform debe ser:
Private Sub CommandButton1_Click()
Application.Run "Macro.xls!Hoja1.MacroHoja1"
End Sub

¡Gracias! mil

Es correcto es así como se visualiza.

No olvides entonces valorar la respuesta,

Sdos!

Respuesta

Generalmente las macros que están definidas en cada hoja están solo para ser usadas en la misma hoja así que si quieres que se pueda usar en otro lado solo muévelo a un módulo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas