¿Qué es la función DateDiff?
Es una función de VBA que devuelve un valor numérico en función de 3 parámetros, el cual corresponde a la diferencia entre dos fechas, la cual puede ser expresada en meses, días, horas, u otras unidades.
¿Cómo usar esta función?
Se usa de la siguiente manera:
DateDiff(Parametro, Fecha Inicial, Fecha Final,[Fecha Inicio Semana], [Fecha Inicio Año])
Donde:
Parámetro: Permite definir qué es lo que se va a calcular, sea días, horas, minutos, hasta años, es decir es la unidad de medida en la que se encuentra el número que la función DateDiff entregará.
Fecha Inicial: Es la fecha desde donde se empezará el cálculo.
Fecha Final: Es la fecha donde finalizará el cálculo.
Fecha Inicio Semana: Permite definir el día de inicio de semana, por default Excel toma como domingo el primer día de semana. Es un parámetro opcional
Fecha Inicio Año: Permite definir el día de fin de semana, por default Excel toma como el 1ro de Enero el primer día de semana. Es un parámetro opcional.
¿Qué es lo que hace?
Devuelve un valor que resulta ser la diferencia de Fecha Final y Fecha Inicial, según sea el parámetro que se especifique.
Esta función es muy importante en el cálculo de tiempo, ya que Excel toma los valores de fecha como número y lo que en verdad se muestra es un formato de esa serie de números. Al usar la fórmula, Excel toma el valor del formato mostrado ( es decir, si se coloca 40940, Excel tomará el valor en fechas de ese número que viene a ser el 01/02/2012 a las 12:00 am).
Ejemplo de la Función DateDiff:
Código VBA:
Sub PruebaDateDiff()
'Notar la definición de variables locales
Dim a As Date
Dim b As Date
Dim Parametro As String
Dim Mensaje As Long
Fecha1 = Range("B1")
'Fecha1 es la Fecha Inicial
Fecha2 = Range("B2")
'Fecha2 es la fecha Final
Parametro = Range("B3")
Mensaje = DateDiff(Parametro, Fecha1, Fecha2)
MsgBox Mensaje
End Sub
Descargar ejemplo completo: Función DateDiff en Excel
Elaborado por: Jesús Tapia
03/11/2012 a las 12:11 pm
Con la función DateDiff, podría hacer reportes de ventas en forma trimestral.
04/11/2012 a las 10:47 pm
Me parece que existe una redundancia en las Fechas Inicio Semana, la segunda debe ser Fecha Inicio Año:
Fecha Inicio Semana: Permite definir el día de inicio de semana, por default Excel toma como domingo el primer día de semana. Es un parámetro opcional
Fecha Inicio Semana: Permite definir el día de fin de semana, por default Excel toma como el 1ro de Enero el primer día de semana. Es un parámetro opcional.
04/11/2012 a las 11:49 pm
Esta función me resulta util para programar proyectos y cartas gantt. En el calculo de tiempo para financiamientos y en la determinación de trabajo efectivamente realizado para una obra (horas hombre).
19/05/2013 a las 8:24 pm
Yo le encuentro aplicacion en el calculo de las edades, esto en combinacion con la funcion Now. En la tabla solo se ingresaria la fecha de nacimiento y con esta funcion obtendriamos la edad.
25/01/2014 a las 7:39 pm
Esta función podría servir para observar por ejemplo los días que restan para el pago de una cuota de un préstamo o la cancelación de una deuda. Asimismo, permitiría programar una lista de actividades como el numero de días restantes para diversas citas o reuniones. En general, para establecer una agenda bastante especifica.
09/07/2014 a las 12:35 pm
Esta función tiene diversas aplicaciones para comparar fechas límite con la actual (p.e. tiempo restante para pagar a proveedores, para un cumpleaños, entre otras), sin que sea necesario ingresarla manualmente a diario. Para ello, se podría incluir la función Now, de la siguiente manera:
DateDiff(Parametro, Now, Fecha_limite)
El caso inverso puede emplearse de manera similar, (p.e. duración de un proyecto hasta el día actual), de la siguiente manera:
DateDiff(Parametro, Fecha_inicio, Now)
09/07/2014 a las 1:02 pm
La definición de variables (a y b) no se relaciona con las variables empleadas en el ejemplo. Considero que lo mejor hubiera sido declarar:
Dim Fecha1 as Date
Dim Fecha2 as Date
30/08/2014 a las 11:05 pm
Buenas noches:
Esta función es perfecta si se trabaja en el área de logística, puesto que se calcularía el tiempo que toma en salir la mercadería del almacén desde su ingreso y con ello pronosticar correctamente las siguientes mercaderías.
Saludos,
06/02/2015 a las 8:57 am
Esta función puede ser útil para hacer cuenta atrás de fechas o de tiempo.
29/05/2015 a las 7:00 pm
Esta funcion puede servir para poder saber cuanto tiempo falta para el vencimiento de algun pago importante, especificando el dia de hoy y el dia de vencimiento del pago. Mientras los dias pasen, se ira actualizando los dias restantes.
12/07/2015 a las 12:30 pm
Esta función es útil en las empresas, por ejemplo en el rubro automotriz para conocer cuanto tiempo falta para que el carro llegue a la empresa y este listo para la entrega al cliente. Colocando en fecha de inicio el día de hoy ( usaría la función =HOY() )y como fecha de fin, la fecha estimada de entrega.
13/10/2017 a las 1:12 pm
código correcto
Sub PruebaDateDiff()
'Notar la definicion de variables locales
Dim a As Date
Dim b As Date
Dim Parametro As String
Dim Mensaje As Long
a = Hoja1.Cells(1, 2)
'a es la Fecha Inicial
b = Hoja1.Cells(2, 2)
'b es la fecha Final
Parametro = Hoja1.Cells(3, 2)
Hoja1.Cells(4, 2) = DateDiff(Parametro, a, b)
End Sub
04/11/2020 a las 2:09 pm
Disculpa tengo una duda para una macro que quiero usar para un arrendamineto de maquinaria. Como seria el código si quiero sumarle días a una fecha de salida para que en una celda especifica me arroje la fecha de entrega:
En la celda "F13" tengo la fecha de salida.
En la celda "F11" tengo la cantidad en numero por ejemplo 20 que son los días en que se va prestar la maquina.
y en la celda "P18" quiero que aparezca la suma de la fecha de salida mas los "n" días en este caso 20 y obviamente con formato de fecha.
Saludos y Gracias.