Contar días hábiles

Hola experto, mi pregunta: en una consulta tengo un campo (CAMPO1) con una fecha particular. En un nuevo campo (Campo 2) quiero calcular los días hábiles entre esa fecha y la fecha del día de hoy (No contar los sábados ni Domingos). Como puedo hacerlo?

1 Respuesta

Respuesta
1

Te remito a la web de otro de los expertos de esta web (Neckkito), donde tiene dos ejemplos que te pueden servir:

Ejemplo 1:

<a>http://www.siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/codigo/95-ejemplos-explicados/ejemplos-de-codigo/134-contar-dias-1</a>

Ejemplo 2:

<a>http://www.siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/codigo/95-ejemplos-explicados/ejemplos-de-codigo/135-contar-dias-2</a>

tengo problemas para abrir los archivos, si me pudieses ayudar por este medio te lo agradeceria

El código, adaptado a tu caso, sería algo así:

'Definimos las variables y les asignamos
valor
Dim vFIni, vFFin As Variant
Dim vDias As Integer
vFIni = Me.CAMPO1.Value
vFFin = Date
'---BLOQUE DE CONTROL DE VALORES DE FECHA
INTRODUCIDOS-------------------
'Controlamos que se haya escrito una fecha
en los cuadros de texto
If IsNull(vFIni) Then
MsgBox "No se ha indicado una fecha
inicial", vbInformation, "AVISO"
'Situamos el foco en el cuadro de fecha
inicial
Me.txtFIni.SetFocus
'Salimos del proceso
Exit Sub
End If
If IsNull(vFFin) Then
MsgBox "No se ha indicado una fecha
final", vbInformation, "AVISO"
'Situamos el foco en el cuadro de fecha
final
Me.txtFFin.SetFocus
'Salimos del proceso
Exit Sub
End If
'Controlamos que la fecha final sea mayor
que la inicial
If vFIni > vFFin Then
MsgBox "La fecha inicial no puede ser
mayor que la final", vbInformation, "AVISO"
'Borramos los valores introducidos
Me. CAMPO1.Value = Null
'Situamos el enfoque en el cuadro de fecha
inicial
Me. CAMPO1.SetFocus
'Salimos del proceso
Exit Sub
End If
'---BLOQUE DE
PROCESO-----------------------------------------------------------------
'Contamos los días entre fechas
vDias = vFFin - vFIni
'Creamos una variable temporal que nos
servirá para analizar
'si el día es sábado o domingo
Dim vFTemp As Date
vFTemp = vFIni + 1
'Iniciamos el análisis a a través de un
bloque DO UNTIL...LOOP
Do Until vFTemp = vFFin
'Si el día es sábado o domingo lo descuenta
de vDias
If Weekday(vFTemp) = vbSaturday Or
Weekday(vFTemp) = vbSunday Then
vDias = vDias - 1
'Nos vamos al día siguiente para analizar
vFTemp = vFTemp + 1
Else
'Si no es sábado ni domingo pasamos al
siguiente día para analizar
vFTemp = vFTemp + 1
End If
Loop
'Asignamos el resultado obtenido a nuestro
cuadro de texto
Me.Campo2.Value = vDias
End Sub

Este código tienes que ponerlo en el evento Después de Actualizar del CAMPO1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas