Visual Basic para Aplicaciones - Error en tiempo de ejecución

Life is soft - evento anual de software empresarial
 
Vista:

Error en tiempo de ejecución

Publicado por Antonio Reyes (4 intervenciones) el 17/12/2009 14:13:06
Hola, gracias anticipadas por la ayuda.

No soy programador, ni experto en el desarrollo de macros para aplicaciones, pero he hecho muchos de ellos para cosas más o menos fáciles que me salen bien (con la ayuda principalmente de JuanC que me ha dado muchísimos y acertados consejos), aunque ahora tengo un problema.

El último desarrollo que hice es para obtener un reporte de evaluación de acuerdo a ciertas combinaciones de datos. El reporte se imprime o se guarda muy bien si no hay errores en la captura de los datos que combino (el nombre del puesto y el nivel, por ejemplo) o si el cursor está en la celda que debe estar (la columna de títulos de puestos), pero si se comete un error aparece el cuadro de diálogo de "Se ha producido un error" y hay que finalizar, cosa que hace que las hojas que tengo ocultas y con contraseñas se queden abiertas y desprotegidas.

En un libro encontré la sentencia "On Error GoTo ControladorError" y la puse al inicio del macro y despues, antes del End Sub, introduje:
ControladorError:
Application.DisplayAlerts = False
ActiveWorkbook.Close

Esto resultó muy bien porque si hay un error cierra el archivo y nadie ve nada y tienen que volver a iniciar y seguramente lo harán mejor, pero el problema radica en que cuando no hay error, al ejecutar el macro y llegar, en la ejecución al controlador de error también se cierra el libro y eso no debe suceder, ya que debe quedar abierto para obtener el reporte del siguiente puesto.

¿Hay alguna forma de evitar que aparezca el cuadro de error, que avise o se cierre, pero que cuando no haya error esas sentencias no sean ejecutadas?

Gracias otra vez
Antonio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Error en tiempo de ejecución

Publicado por JuanC (565 intervenciones) el 18/12/2009 11:20:41
debés salir antes del manejador de error, por eso el controlador_error suele ir
al final del procedimiento...
ej:

...
Exit Sub

ControladorError:
Application.DisplayAlerts = False
ActiveWorkbook.Close

End Sub

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error en tiempo de ejecución

Publicado por Antonio (4 intervenciones) el 18/12/2009 13:23:40
Gracias nuevamente JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar