VBA número de días entre 2 fechas
Resuelto
doom56530
Mensajes publicados
13
Estado
Miembro
-
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
michel_m Mensajes publicados 18903 Fecha de registro Estado Colaborador Última intervención -
Hola,
Estoy intentando calcular la diferencia entre dos fechas mediante una macro para una base de datos.
Consigo calcular esa diferencia en una sola línea. Uso el siguiente código:
Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer
Dat1 = Range("A1")
Dat2 = Range ("B1")
nbr_jr = Dat2 - Dat1
Range ("C1") = nbr_jr
End sub
Hasta aquí todo funciona como deseo.
Este cálculo debe hacerse sistemáticamente (para cada nueva entrada) cuando valido en un formulario.
Intento hacer un bucle pero cada vez falla.
Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer
Dim i as Integer
For i = 1 to 20
Dat1 = Range("A" & i)
Dat2 = Range ("B" & i)
nbr_jr = Dat2 - Dat1
Range ("C" & i) = nbr_jr
Next i
End sub
Si pudieras detectar mis errores o darme una idea para resolver mi problema, sería genial.
Gracias de antemano
Estoy intentando calcular la diferencia entre dos fechas mediante una macro para una base de datos.
Consigo calcular esa diferencia en una sola línea. Uso el siguiente código:
Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer
Dat1 = Range("A1")
Dat2 = Range ("B1")
nbr_jr = Dat2 - Dat1
Range ("C1") = nbr_jr
End sub
Hasta aquí todo funciona como deseo.
Este cálculo debe hacerse sistemáticamente (para cada nueva entrada) cuando valido en un formulario.
Intento hacer un bucle pero cada vez falla.
Sub dif_date ()
Dim Dat1 as Date
Dim Dat2 as Date
Dim nbr_jr as Integer
Dim i as Integer
For i = 1 to 20
Dat1 = Range("A" & i)
Dat2 = Range ("B" & i)
nbr_jr = Dat2 - Dat1
Range ("C" & i) = nbr_jr
Next i
End sub
Si pudieras detectar mis errores o darme una idea para resolver mi problema, sería genial.
Gracias de antemano
Configuración: Windows 2000 Firefox 3.5.7
2 respuestas
-
Atención, debes verificar que tu resultado 'nbr_jr' sea positivo; de lo contrario fallará.
PD: existe una función ya preparada para calcular la diferencia entre dos fechas: DateDiff("d",date1,date2) -
gracias a ti, lo probé con DateDiff y funciona perfecto.
-
-
Hola,
Extracto de la ayuda en línea de Excel sí, es gratis y útil
DateDiff, función
Ver también Ejemplo Particularidades
Devuelve un valor de tipo Variant (Long) que indica el número de intervalos de tiempo entre dos fechas dadas.
Sintaxis
DateDiff(intervalo, fecha1, fecha2[, primer día de la semana[, primera semana del año]])
La sintaxis de la función DateDiff comprende los siguientes argumentos con nombre:
Elemento Descripción
intervalo Cadena que representa el intervalo de tiempo utilizado para calcular la diferencia entre fecha1 y fecha2.
fecha1, fecha2 De tipo Variant (Date), representan las dos fechas utilizadas en el cálculo.
primerDíaDeLaSemana Opcional. Constante que especifica el primer día de la semana. Si no se especifica ningún valor, el valor predeterminado es domingo.
PrimeraSemanaDelAño Opcional. Constante que especifica la primera semana del año. Si no se especifica ningún valor, la primera semana es la del 1 de enero.
Valores
El argumento intervalo puede tomar los siguientes valores:
Valor Descripción
yyyy Año
q Trimestre
m Mes
y Día del año
d Día
w Día de la semana
ww Semana
h Hora
n Minuto
s Segundo
-