Días hábiles en Excel VBA - Macros simples de Excel

Buenas, me llamo Miguel y al día de hoy os traigo un nuevo post.

A continuación veremos un programa en Excel VBA que calcula el número de durante la semana entre dos fechas.

Los días laborables son: lunes, martes, miércoles, jueves y viernes.

Localización:

Días laborables en Excel VBA

Nota: las fechas están en formato estadounidense. Los primeros meses, los segundos días. Este tipo de formato depende de la configuración regional de Windows.

1. Primero, declaramos cinco variables. data1 de tipo Date, data2 de tipo Date, dateToCheck tipo Date, daysEntre tipo Integer, días laborables de tipo Integer y ei de tipo Integer.

Oscuro datos1 Cómo Datos, datos2 Cómo
Datos, fecha para comprobar Cómo Datos
Oscuro días entre Cómo Entero, días laborables Cómo Entero, me Cómo Entero

2. Inicializamos cuatro variables. Usamos la función DateDiff para inicializar la variable daysBetween. Esta función tiene tres argumentos. Completamos "d" para el primer argumento ya que queremos el número de días entre data1 y data2.

días laborables = 0
data1 = Rango ("B2")
data2 = Rango ("B3")
daysBetween = DateDiff ("d", data1, date2)

3. Necesitamos verificar para cada fecha entre date1 y date2 (incluyendo date1 y date2) si la fecha es un día de la semana o no. Si es así, aumentamos los días laborables en 1. Usaremos un bucle para el siguiente

Para i = 0 Para días entre

4. Usamos la función DateAdd para obtener cada fecha que necesitamos verificar. Esta función tiene tres argumentos. Completamos "d" para el primer argumento ya que queremos agregar días, i para el segundo argumento y data1 para el tercer argumento ya que queremos agregar i días hasta la fecha1. De esta manera, Excel VBA puede verificar cada fecha entre date1 y date2 comenzando con date1. Agregue la siguiente línea de código:

dateToCheck = DateAdd ("d", i, fecha1)

Ejemplo: para i = 3, Excel VBA verifica la fecha 1 + 3 días.

5. A continuación, usamos la función Weekday (función incorporada) para comprobar si dateToCheck es un día de la semana o no. La función Día de la semana devuelve 1 para un domingo y 7 para un sábado. Por lo tanto, solo aumentamos la variable de días hábiles si Weekday (dateToCheck) no es igual a 1 y no es igual a 7 ( significa que no es igual a). Las siguientes líneas de código hacen el trabajo.

(Día de la semana (fecha a comprobar) 1 mi Día de la semana (fecha a comprobar) 7) Entonces

días de la semana = días de la semana + 1
Aleta

6. No olvide cerrar el ciclo.

Entonces me

7. Finalmente, mostramos el número de días de la semana usando un MsgBox. Usamos el operador & para concatenar (unir) dos cadenas. Aunque los días laborables no son una cadena, aquí funciona.

MsgBox en días laborables y "días laborables entre estas dos fechas"

8. Coloque su macro en un botón de comando y prueba.

Resultado:

Resultados días laborables

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página utiliza Cookies. Más info