Estas funciones solo se implementan a variables declaradas de tipo Date, veremos a continuación las principales funciones.
Date: Función que permite devolver la fecha actual del sistema
DateAdd: Función que permite devolver una fecha añadiéndole un intervalo de tiempo. Estos intervalos se basan en el siguiente formato.
“d”: Día
“y”: Año
“h”: Hora
“n”: Minuto
“m”: Mes
“q”: Trimestre
“s”: Segundo
“w”: Semana
“ww”: Semana de Calendario
“yyyy”: Año
DateDiff: Función que permite devolver la diferencia entre dos fechas lo cual se puede dar en días, meses o años
DatePart: Función que permite devolver parte de una determinada fecha. Por ejemplo, si necesitamos el año actual el código seria DatePart (“y”,Date)
Year: Función que permite devolver el año de una determinada fecha
Month: Función que permite devolver el mes de una determinada fecha
Day: Función que permite devolver el día de una determinada fecha
Hour: Función que permite devolver la hora actual de un determinado tiempo
Now: Función que permite devolver la fecha actual del sistema.
Time: Función que permite devolver la hora actual del sistema.
Ejemplo 1
Implementemos una función que muestre la fecha actual, recuerde que el código mostrando debe ser implementando dentro del módulo creado.
Le damos Insertar en vba y hacemos click en modulo
Luego podemos observar el modulo creado con nombre “Modulo 1”
Nos centramos en el módulo y digitamos la siguiente función:
Fuction muestrafecha () As String
muestrafecha= Format (Date, "d/m/yyyy")
End Function
Para probar la función debemos ubicarnos en una celda de la hoja de Excel
Coloque la siguiente sentencia: = muestrafecha()
Como resultado es la siguiente imagen
Ejemplo 2
Determinar la edad de una persona
Debemos tener en cuenta que el código mostrado debe ser implementado dentro de un módulo.
Solución:
Para implementar una función que permita calcular la edad de una persona se debe ingresar como un parámetro la fecha de su nacimiento.
Function calculaEdad (ByVal fecha As Date) As Integer
calculaEdad = Year (Date) - Year (fecha)
End Function
Comentario: La función calculaEdad recibe como parámetro la fecha de nacimiento de una persona, esta debe ser recibida como tipo Date y al final de la línea se especifica el tipo de salida de una función, para este caso se usó Integer, porque la edad resultante será un numero entero
Year(Date) determina el año de la fecha actual y Year(fecha) determina el año de la fecha ingresada a la función. Finalmente, el resultado es enviado a la función.
Probamos la función VBA en Excel
En la celda C6 colocamos la siguiente sentencia = calculaEdad(C6)
Otras dos simples maneras de colocar la fecha en VBA.
Lo que se requiere es que se llene los campos de fecha y hora automáticamente.
Para ello, existen varias maneras de colocar fechas en VBA, pero estas dos se consideran las más sencillas:
CASO 1:
Utilizaremos este código para la hoja “REGISTRO”, en donde mediante vamos llenando los campos automáticamente esta lanzara la fecha y la hora del registro que se estará realizando.
Range(“C:C”) ‘Significa la columna en donde uno escribirá el nombre del cliente para que automáticamente las celdas correspondientes a la fecha y hora se llenen.
Range(“A” & Target.Row) = Date ‘Se registrara el día al cual están registrando.
Range(“B” & Target.Row) = Format (Now, “hh:mm”) ‘Se registrara la hora exacta
CASO 2:
Se puede crear un formulario solo con estas características:
En donde al hacer click en el text box en la fecha, se tiene que escribir el próximo código:
Private Sub TextBox6_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case Len(TextBox6.Value)
Case 2
TextBox6.Value = TextBox6.Value & "/"
Case 5
TextBox6.Value = TextBox6.Value & "/20"
End Select
End Sub
Y para la hora se colocara lo siguiente:
Private Sub TextBox7_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case Len(TextBox7.Value)
Case 2
TextBox7.Value = TextBox7.Value & ":"
End Select
End Sub