Étant donné une date en entrée, comment puis-je déterminer si la journée tombe un week-end?
Il existe une fonction Weekday qui prend une date comme argument et renvoie le jour (1, 2, 3, etc.)
Les valeurs de retour sont:
vbSunday (1)
vbMonday (2)
vbTuesday (3)
vbWednesday (4)
vbThursday (5)
vbFriday (6)
vbSaturday (7)
En supposant que les week-ends sont le samedi et le dimanche, la fonction ressemblerait à ceci:
Public Function IsWeekend(InputDate As Date) As Boolean
Select Case Weekday(InputDate)
Case vbSaturday, vbSunday
IsWeekend = True
Case Else
IsWeekend = False
End Select
End Function
C'est le moyen le plus direct de déterminer si MyDate
tombe le week-end:
MsgBox Weekday(MyDate, vbMonday) > 5
La fonction Weekday () a un 2e paramètre optionnel qui lui indique quel jour de la semaine la semaine commence. La fonction Weekday () renvoie un entier compris entre 1 et 7.
Je lui ai demandé de commencer la semaine le LUNDI et donc le SAMEDI serait de 6 et le DIMANCHE de 7.
Ou, vous pouvez utiliser ceci:
OR(MOD(WEEKDAY(cell), 7)=0, MOD(WEEKDAY(cell), 7)=1)
ou
MOD(WEEKDAY(cell), 7) < 2
comme formule.
puisque 1 est dimanche et 0 est samedi
Formule pour convertir la date en jours de la semaine
Selection.FormulaR1C1 = "= TEXT (WEEKDAY (R7C" + CStr (i) + ", 1)," "ddd" ")" "
cela reviendra le jour
par exemple: - si l'entrée est 02-mai-2013, elle renverra jeu -> (jeudi) ici la variable i représente une autre colonne