** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Tus Funciones Favoritas & Aportaciones & Artí­culos
  Mensajes nuevos Mensajes nuevos RSS - VBA: Fechas. Suma Tiempos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoVBA: Fechas. Suma Tiempos

 Responder Responder
Autor
Mensaje Invertir el orden de clasificación
genoma111 Ver desplegable
Administrador
Administrador
Avatar

Unido: 28/Marzo/2011
Localización: ...
Estado: Sin conexión
Puntos: 3248
Enlace directo a este mensaje Tema: VBA: Fechas. Suma Tiempos
    Enviado: 20/Agosto/2013 a las 22:28
DateAdd no puede sumar fracciones, y muchas veces eso es precisamente lo que necesitamos.

Para suplir esa necesidad he construido esta función.

Uso:

Private Sub Command0_Click()
' Por ejemplo si queremos sumar 1 año y una semana a la fecha actual

MsgBox Now() & vbNewLine & DateAdds(Now(), 1, , , 1)

End Sub

Función:

'---------------------------------------------------------------------------------------------------------------------------------------
' Nombre:       DateAdds
' Propósito:    Suma Fechas/Horas usando la función DateAdd supliendo la incapacidad de DateAdd para sumar fracciones.
'               Todos los parámetros excepto "Date1" son opcionales.
' Descripción:  Date1:      Fecha Inicial.
'               Years:      Años.
'               Quarters:   Trimestres.
'               Months:     Meses
'               Weeks:      Semanas
'               Days:       Días
'               Hours:      Horas
'               Minutes:    Minutos
'               Seconds:    Segundos
'
' Author:       Diego F.Pereira-Perdomo
'
' Date:         May-29-2013
'---------------------------------------------------------------------------------------------------------------------------------------
Public Function DateAdds(Date1 As Date, _
                Optional Years As Long, _
             Optional Quarters As Long, _
               Optional Months As Long, _
                Optional Weeks As Long, _
                 Optional Days As Long, _
                Optional Hours As Long, _
              Optional Minutes As Long, _
              Optional Seconds As Long) As Date
             
    Dim Date2 As Date
   
    Date2 = Date1
   
    If Years Then: Date2 = DateAdd("yyyy", Years, Date2)
    If Quarters Then: Date2 = DateAdd("q", Quarters, Date2)
    If Months Then: Date2 = DateAdd("m", Months, Date2)
    If Weeks Then: Date2 = DateAdd("ww", Weeks, Date2)
    If Days Then: Date2 = DateAdd("d", Days, Date2)
    If Hours Then: Date2 = DateAdd("h", Hours, Date2)
    If Minutes Then: Date2 = DateAdd("n", Minutes, Date2)
    If Seconds Then: Date2 = DateAdd("s", Seconds, Date2)
   
    DateAdds = Date2
End Function



Editado por genoma111 - 21/Agosto/2013 a las 10:21
"To VBA or not to VBA... that's the question" DFP
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable