¿Cómo llamar a una función en una hoja desde un formulario?

Tengo una hoja en la cual he grabado una función (sub) para actualizarla desde un botón en la misma hoja cada vez que introduzco nuevos datos (sub actualizar_Click()). Hasta aquí bien.

Luego tengo un formulario mediante el cual agrego datos en la hoja anterior. Y en este formulario a su vez tengo un botón con otra función para guardar los cambios (sub guardar_Click()).

El problema lo tengo en que desde la función "guardar" del formulario quiero llamar a la función "actualizar" en la hoja para que antes de guardar se actualice y realice otras cosas que tengo en la función actualizar_Click() de la hoja, todo ejecutado desde la función guardar.

¿Cómo la debo llamar para que se ejecute?

He probado esto desde la función en el formulario:

sub guardar_Click()

actualizar_Click

...resto de la función

end sub

Y nada... ¿alguna ayuda?

2 Respuestas

Respuesta
1

Estoy tratando de imaginar tu situación... si falta realizar algún ajuste podés solicitar aclaraciones.

¿Cómo función... estás refiriéndote a botones que ejecutan macros? ¿Es decir botones dibujados en la hoja con alguna de estas herramientas? :

Como haces mención a 'Click' me queda la idea de que utilizaste controles ActiveX en la hoja.

Entonces, como también tiene que ser llamada desde otra macro, la dejaría de este modo, que te permite incluso agregar instrucciones que no deben ser ejecutadas desde el botón Guardar pero sí desde el de Actualizar:

Private Sub actualizar_Click()     'macro del botón ActiveX de la hoja
'instruciones previas
Call macroActualiza
'mensaje opcional
MsgBox "Fin de la actualización"
End Sub

Luego en un módulo la macro en sí, que para este ejemplo solo envía un mensaje.

Sub macroActualiza()
MsgBox "Se procede a actualizar la hoja."
End Sub

Y por 'formulario' tampoco se si se trata de un Userform o una hoja formulario, donde quizás también tengas botón ActiveX para guardar. En ese caso el orden de las instrucciones sería:

Private Sub guardar_Click()
'primero actualizar
Call macroActualiza
'luego sigue guardardo
MsgBox "Ahora guardaré ..."
End Sub

Como comenté al inicio, es una idea un poco aproximada ya que no hay mucha certeza de qué tipo de controles y formularios utilizas. Si se trata de otro escenario comentame qué tipo de controles y formulario estás utilizando.

*En el video N° 9 de mi canal dejé algunos ejemplos de macros compartidas.

Sdos.

Elsa

http://aplicaexcel.com

Respuesta

Si ejecutas el formulario en modo debug y presionas clic en el botón Guardar_click, revisa si efectivamente entra a la función Actualizar_click

También pon aquí todos tus códigos para revisarlos.

Comenta si tienes desactivada el cálculo automático. Si está activo, no entiendo para qué la función Actualizar, sin embargo, comparte tu código para analizarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas