VBA Weekday - Guide étape par étape de la fonction de jour de la semaine dans VBA

Fonction de jour de la semaine Excel VBA

Weekday dans VBA est une fonction de date et d'heure qui est utilisée pour identifier le jour de la semaine d'une date donnée à condition qu'il soit en entrée, cette fonction renvoie une valeur entière de 1 à 7, il y a un argument facultatif fourni à cette fonction qui est le premier jour de la semaine mais si nous ne fournissons pas le premier jour de la semaine, la fonction prend par défaut le dimanche comme premier jour de la semaine.

Pouvons-nous connaître le numéro de la semaine en regardant une date particulière? Oui, nous pouvons dire le numéro du jour de cette semaine, en fonction du jour de début de la semaine. Dans les fonctions de feuille de calcul normales, nous avons une fonction appelée WEEKDAY dans Excel pour indiquer le numéro de la semaine pour une date particulière. En VBA aussi, nous avons la même fonction pour trouver la même chose.

Que fait la fonction Weekday?

La fonction jour de la semaine renvoie le numéro de jour de la date fournie dans la semaine. Par exemple, si vous avez les dates 01 er avril au 07 e Avril et si vous voulez connaître le jour de la date 05 e Avril si le premier jour de la semaine est du lundi, il est le 5 e jour.

Pour le trouver, nous avons la même fonction que "Weekday" dans une feuille de calcul ainsi que dans VBA. Voici la syntaxe de la fonction.

Date: à quelle date nous essayons de trouver le jour de la semaine. Cela devrait être une date appropriée avec le format correct.

(Premier jour de la semaine): Afin de déterminer le jour de la semaine de la date fournie , nous devons mentionner quel est le premier jour de la semaine. Par défaut, VBA considère «Lundi» comme le jour de début de la semaine. En dehors de cela, nous pouvons également fournir les jours ci-dessous.

Exemples

Exemple 1

Pour commencer la procédure, permettez-moi de commencer par un exemple simple. Nous allons maintenant essayer de trouver le jour de la semaine pour la date «10-avril-2019».

Étape 1: définir la variable comme chaîne

Code:

Sub Weekday_Example1 () Dim k As String End Sub
Étape 2: attribuer une valeur à la variable

Attribuez la valeur à la variable «k» en appliquant la fonction WEEKDAY.

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Étape 3: Entrez la date dans la fonction

La date que nous testons ici est «10-avr-2019», alors passez la date en «10-avr-2019».

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Étape 4: Afficher la valeur de la variable dans MsgBox

Par défaut, le premier jour de la semaine est «Lundi», donc ignorez cette partie. Fermez le support. La ligne suivante montre la valeur de la variable «k» dans la boîte de message VBA.

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub

Ok, nous avons terminé.

Si nous courons le code, nous allons obtenir le résultat que « 4 » parce que à partir de dimanche, la date prévue (10-Apr-2019) tombe sur le 4 e jour de la semaine.

Remarque: le premier jour de la semaine de mon système est le «dimanche».

Similarly, if you change the start day of the week, it keeps varying. Below is an example line for the same.

Code:

k = Weekday("10-Apr-2019", vbMonday) ‘This returns 3 k = Weekday("10-Apr-2019", vbTuesday) ‘This returns 2 k = Weekday("10-Apr-2019", vbWednesday) ‘This returns 1 k = Weekday("10-Apr-2019", vbThursday) ‘This returns 7 k = Weekday("10-Apr-2019", vbFriday) ‘This returns 6 k = Weekday("10-Apr-2019", vbSaturday) ‘This returns 5 k = Weekday("10-Apr-2019", vbSunday) ‘This returns 4

Example #2 - Arrive Whether the Date is on Weekend or Not

Assume you have a date like the below, and you want to find the next weekend date, then we can use the WEEKDAY function to arrive at the results.

We need to use WEEKDAY with IF condition and loops to arrive at the result. I have written the code for you to go line by line to get the logic.

Code:

Sub Weekend_Dates() Dim k As Integer For k = 2 To 9 If Weekday(Cells(k, 1).Value, vbMonday) = 1 Then Cells(k, 2).Value = Cells(k, 1) + 5 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 2 Then Cells(k, 2).Value = Cells(k, 1) + 4 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 3 Then Cells(k, 2).Value = Cells(k, 1) + 3 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 4 Then Cells(k, 2).Value = Cells(k, 1) + 2 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 5 Then Cells(k, 2).Value = Cells(k, 1) + 1 Else Cells(k, 2).Value = "This is actually the weekend Date" End If Next k End Sub

This will arrive at the results below.

Regardez les cellules B6 et B7. Nous avons obtenu le résultat "C'est en fait la date du week-end" car les dates "04-mai-2019" et "06-avr-2019" sont en fait des dates de week-end, donc pas besoin d'afficher la date du week-end pour les dates de week-end. Par défaut, nous obtenons le résultat comme ceci.

Articles intéressants...