lunes, 17 de julio de 2017

Validar si una fecha es hábil en un formulario en VBA -Excel

 
Hola chicos, hace algunos días tuve la necesidad de validar si una fecha era hábil o no en un formulario de Excel (programado en Visual Basic for aplications) entiéndase como día hábil los que están comprendidos entre el Lunes y Viernes.

Pues bien, luego de buscar más allá de la segunda página de resultados de Google y no encontrar algo que apoyara mi objetivo me decidí a programarlo y estos son los pasos para lograrlo:

1-Crea la interfaz grafica del formulario.

Desde la pestaña Programador en Microsoft Excel podrás acceder al gestor de Visual Basic, para este ejemplo utilizaremos un campo de texto y un botón:



VBA


2- Antes de continuar guarda el libro para que se encuentre habilitado para macros:



Visual Basic for aplications


3- Definir las variables que vamos a utilizar dentro del evento de acción del botón:


Dim fechaReg As Date
Dim DiaSemanaFecha As Integer
Dim fechaTemporal As Date 

Validar si una fecha es hábil en un formulario en VBA -Excel


4- Convertir el valor ingresado en el campo de texto en format fecha, se utiliza la función “DateValue” :

fechaReg = DateValue(fecha.Text)

fecha


5- La función “Weekday” nos devolverá un valor numérico de 1 a 7 del dia de la semana que corresponde la fecha, inicia en el domingo y finaliza el Sábado respectivamente. Utilizaremos dicha funciona junto a un condicional “Si” para identificar si nuestra fecha es hábil o no:

DiaSemanaFecha = Weekday(fechaReg)
If DiaSemanaFecha <> 1 And DiaSemanaFecha <> 7 Then 'Valida que la fecha este entre Lunes y Viernes
fechaReg = fechaTemporal
MsgBox "La Fecha es un dia habil"
Else
MsgBox "La Fecha NO es un dia habil"
End If

validar


6- Te dejo el código completo:

Private Sub CommandButton1_Click()
Dim fechaReg As Date
Dim DiaSemanaFecha As Integer

fechaReg = DateValue(fecha.Text)

DiaSemanaFecha = Weekday(fechaReg)
If DiaSemanaFecha <> 1 And DiaSemanaFecha <> 7 Then 'Valida que la fecha este entre Lunes y Viernes
fechaReg = fechaTemporal
MsgBox "La Fecha es un dia habil"
Else
MsgBox "La Fecha NO es un dia habil"
End If

End Sub

7- Resultado:

Suscribete por correo a mi pagina

Related Posts Plugin for WordPress, Blogger...