La función Weekdayname es utilizada para conseguir el nombre del día de la semana que se requiera. Esta función requiere que se defina primero el parámetro FirstDayOfWeek que significa Primer día de la semana.
La función completa es la siguiente:
WeekDayName(weekday[, abbreviate][, firstdayofweek])
Donde los Argumentos son:
Weekday: Es un valor que indica el día de la semana. Dependerá de la definición del primer día de la semana que se establezca con el parámetro FirstDayOfWeek.
Abbreviate: Aquí se indica si el nombre del día que se presentará se abrevia o no. Es opcional su uso. De no utilizarse el valor predeterminado es False.
Firstdayofweek: Es un valor numérico para indicar el primer día de la semana. También es de uso opcional.
Para establecer el primer día de la semana se pueden utilizar los siguientes valores:
vbSunday, cuyo valor es 1 y es predeterminado para el domingo
vbMonday, cuyo valor es 2 y es predeterminado para el lunes
vbTuesday, cuyo valor es 3 y es predeterminado para el martes
vbWednesday, cuyo valor es 4 y es predeterminado para el miércoles
vbThursday, cuyo valor es 5 y es predeterminado para el jueves
vbFriday, cuyo valor es 6 y es predeterminado para el viernes
vbSaturday, cuyo valor es 7 y es predeterminado para el sábado
Ejemplo 1:
Sub Nombrediaabreviado()
'Funcion para mostrar nombre del día según fecha indicada con abreviatura
Nombredeldia = #7/22/2012#
DiaSeleccionado = WeekdayName(Weekday(Nombredeldia), True, vbSunday)
End Sub
Con esta función se demostrará el nombre del día 22 de Julio del 2012 en forma abreviada.
La fecha está en formato #Mes/Dia/Año#
(Para mayor visualización de la imagen, hacer click en la misma)
Ejemplo 2:
Sub Nombrediasinabreviar()
'Funcion para mostrar nombre del día según fecha indicada sin abreviatura
Nombredeldia = #7/22/2012#
DiaSeleccionado = WeekdayName(Weekday(Nombredeldia), False, vbSunday)
End Sub
La fecha está en formato #Mes/Dia/Año#
Con esta función se muestra el nombre del día seleccionado, en este caso nuevamente el 22 de julio del 2012, pero esta vez sin abreviaturas. Para conseguir esto en lugar de colocar True en "abbreviate" se está colocando False.
(Para mayor visualización de la imagen, hacer click en la misma)
Ejemplo 3:
Sub Nombrediasinabreviar2()
'Funcion para mostrar nombre del día según fecha indicada sin abreviatura
Nombredeldia = Range("A1")
DiaSeleccionado = WeekdayName(Weekday(Nombredeldia), False, vbSunday)
End Sub
En este caso se está colocando la formula relacionada a una celda especifica del libro en Excel. En el ejemplo es la celda A1 en donde se coloca la fecha 21 de diciembre de 1994 que cae miércoles. Se adjunta la imagen de pantalla.
(Para mayor visualización de la imagen, hacer click en la misma)
Elaborado por : Elias Carlos Cabana
03/11/2012 a las 1:28 am
Tengo una consulta sobre este parámetro Firstdayofweek, en los ejemplos utilizan el valor de vbSunday, pero si lo cambio por vbFriday u otro, el valor de la variable DiaSeleccionado cambia, alguien me podría explicar porque sucede esto, gracias de antemano.
04/11/2012 a las 5:14 pm
es muy útil para los problemas de flujo de caja, ya que podría indicar el día desde que empezo el préstamos, por ejemplo, hasta el día que concluyo y calcular los intereses abonados en ese periodo
04/11/2012 a las 11:18 pm
Hay alguna forma de cambiar el formato de Mes-Día-Año al que utilizamos nosotros, es decir, al dia-mes-año. En un ejemplo explico para que me parece util esta función. Cuando una empresa tiene política de pagar todos los lunes de la semana a sus proveedores,podrá organizar mejor sus flujos en los meses futuros pues puede determinar en que semana se paga con exaactitud a cada proveedor sin necesidad de ver el calendario en paralelo con el excel.
23/09/2014 a las 1:49 pm
yo quiero obtener las fechas que estan comprendidas entre dos fechas y omitir los sabados y domingos, obterlas y mostrarlas no contar cuantoas dias hay entre esas dos fechas, si me explico.
18/11/2014 a las 12:11 pm
Saludos, una alternativa más sencilla:
function nombredeldia
fecha=date ' Esta es la fecha de la que queremos el nombre del día
nombredia= format(date,"DDDD") ' Si lo quieren abreviar coloquen tres D en lugar de 4.
msgbox nombredia
end function