Algo más sobre la Sentencia SELECT CASE


Abra su libro de macros. Si no lo tiene vaya a la siguiente dirección y descárguelo de allí.

Use [Alt]+F11 para ir al editor.

Otro ejemplo de Select case con manejo de fecha y hora.

Haremos un ejemplo más de uso de la sentencia Select. En este caso lo usaremos con las funciones de fecha y hora para emitir un saludo según corresponda.

La función date() contiene la fecha formato: DD/MM/YYYY
La función Now() contiene la fecha y hora en formato largo: DD/MM//YYYY HH:MM:SS a.m.

En xC dejaremos el contenido de Now() usando xC = Now()
En xFecha dejaremos la fecha corta extraida d xC usando: xFecha = Mid(xC, 1, InStr(1, xC, " ") - 1)
En xtime dejaremos la hora contenida en xC usando: xTime = Right(xC, Len(xC) - Len(xFecha) - 2)
En xM dejamos el “a.m.” o “p.m.” contenida en xC
En xH dejamos la hora, convertida en valor numérico (está en formato de fecha): xh = Val(Hour(xTime))

Y luego usamos Select case para decir buenos días, tardes o noches, según corresponda.

He aquí el procedimiento. Abra su libro MisMacros; hga doble clic en Módulo 6 y al final de ella ingrese:

Sub Saludos()
' Uso de Fecha en saludo

Dim xC As String
MsgBox "Date() contiene: " & Date
MsgBox "Now() contiene: " & Now()
' Capturamos la fecha en xC
xC = Now()
' Extraemos la fecha corta
xFecha = Mid(xC, 1, InStr(1, xC, " ") - 1)
' Extraemos la hora, minutos y segundos
xTime = Right(xC, Len(xC) - Len(xFecha) - 2)
xM = Right(xC, 4)
MsgBox "Todo; " & xC & " Fecha corta: " & xFecha & " Hora: " & xTime
'
' Ahora usaremos Select Case para el saludo
'
xh = Val(Hour(xTime))

Select Case xh
Case 1 To 12: MsgBox "Hola. Buenos dias. Hoy es: " & xFecha
Case 12 To 18 And xM = "p.m.": MsgBox "Hola. Buenas tardes. Hoy es: " & xFecha
Case 19 To 24: MsgBox "Hola. Buenas noches. Hoy es: " & xFecha
End Select

End Sub


Grabe su libro con el nombre Mis Macros-a.xlsm, habilitado para macros.

En la siguiente sesión veremos el uso de arreglos (Vectores y Matrices) para ello

haga clic aquí