Jour de la semaine 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 optionnel 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 des dates du 01 avril au 07 avril et si vous voulez connaître le jour de la date 05 avril si le jour de début de la semaine est du lundi, c'est le 5ème jour.

Pour trouver cela, nous avons la même fonction «Jour de la semaine» 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

Vous pouvez télécharger ce modèle Excel de fonction VBA WeekDay ici - Modèle Excel de fonction VBA WeekDay

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. Dans la ligne suivante, affichez 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 exécutons le code, nous obtiendrons le résultat «4» car à partir de dimanche, la date indiquée (10 avril 2019) tombe le 4e jour de la semaine.

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

De même, si vous modifiez le jour de début de la semaine, il ne cesse de varier. Voici un exemple de ligne pour le même.

Code:

k = Weekday ("10-Apr-2019", vbMonday) 'Ceci renvoie 3 k = Weekday ("10-Apr-2019", vbTuesday)' Cela renvoie 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Cela renvoie 1 k = Weekday ("10-Apr-2019", vbThursday)' Ceci renvoie 7 k = Weekday ("10-Apr-2019", vbFriday) 'Cela renvoie 6 k = Weekday ("10-Apr-2019" ", vbSaturday) 'Ceci renvoie 5 k = Jour de la semaine (" 10-Apr-2019 ", vbSunday)' Cela renvoie 4 

Exemple # 2 - Arriver, que la date soit le week-end ou non

Supposons que vous ayez une date comme celle ci-dessous et que vous vouliez trouver la date du prochain week-end, nous pouvons utiliser la fonction WEEKDAY pour arriver aux résultats.

Nous devons utiliser WEEKDAY avec condition IF et boucles pour arriver au résultat. J'ai écrit le code pour que vous puissiez aller ligne par ligne pour obtenir la logique.

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 = "C'est en fait le week-end Date "End If Next k End Sub 

Cela arrivera aux résultats ci-dessous.

Regardez les cellules B6 et B7 nous avons obtenu le résultat comme "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 du week-end. Par défaut, nous obtenons le résultat comme ceci.