Hola: Ojala puedas ayudarme. Necesito una instrucción en excel para que haga lo siguiente: Llegada por ejemplo la fecha 30 de septiembre de 2004 y posterior se ejecute de manera automática la macro1. Te lo agradeceré bastante Gracias
1 respuesta
Respuesta de faszs
1
1
faszs, Especialista en automatización de Ms Excel con Visual Basic
Existen funciones en Visual basic que ejecutan instrucciones para la comparación de fechas. La mayoría de ellas depende de la configuración del sistema así que he generado un código que toma cada uno de los elementos de la fecha por separado (día, mes, año) y los compara para evitar algunos problemas que se generan por configuraciones de sistema diferentes. El siguiente procedimiento se alimenta con los valores numéricos del día, mes y año que definen la fecha limite que quieres fijar. En tu caso sería 30/09/2004. Utilizando la instrucción "GoTo" he colocado la línea de ejecución de la macro en un solo sitio para que no tengas problemas. Luego de la linea donde dice "Macro:" debes escribir CALL y el nombre de la macro que quieres que se ejecute cuando la fecha sea igual o mayor a la fijada como limite. Sub xFecha(dia As Double, mes As Double, año As Double) 'Obteniendo fecha actual dia_hoy = Day(Now): mes_hoy = Month(Now): año_hoy = Year(Now) If año_hoy > año Then 'Si el año es mayor al especificado se ejecutará la macro GoTo Macro ElseIf año_hoy = año Then 'Si el año es igual revisa el mes If mes_hoy > mes Then 'Si el mes es mayor ejecuta la macro GoTo Macro ElseIf mes_hoy = mes Then 'si el mes es igual revisa el día If dia_hoy >= dia Then GoTo Macro 'si el día es mayor o igual ejecuta la macro End If End If GoTo Fin Macro: Call NombreMacro Fin: End Sub Para que el subprograma se ejecute automáticamente debes asociarlo al evento de un control determinado, por ejemplo puedes ejecutarlo al abrir el libro de MS Excel colocándolo dentro del evento open del objeto workbook así: Private Sub Workbook_Open() Call xFecha(30,09,2004) End Sub Cualquier duda no dudes en escribir