Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Funciones de Fecha

| Sin comentarios

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

Dos Simples maneras de colocar fechas en VBA

FUNCIÓN FECHA -APLICACION EN EXCEL

Deja un comentario

Los campos requeridos estan marcados con *.