Excel VBA DatePart

Supposons que nous ayons des dates dans nos données et que nous ne sachions ni quelle semaine ni quelle partie du mois c'est. Il existe différentes façons de le savoir. Dans Excel, il existe des formules complexes que nous devons effectuer pour trouver cela. Par exemple, s'il existe une date, 02-févr.-2019, le calcul pour connaître le trimestre de cette date dans Excel est complexe. Cependant, VBA nous fournit une fonction très pratique appelée DatePart qui effectue de tels calculs pour nous.

J'ai expliqué ci-dessus maintenant pourquoi nous utilisons la fonction DatePart dans VBA. Cette fonction permet de connaître la partie de la date, que ce soit un jour, un mois, un trimestre ou même des heures ou des secondes. Cette fonction renvoie l'entier en sortie. Pour mieux comprendre cette fonction, examinons d'abord en détail la syntaxe de cette fonction.

Syntaxe de DatePart dans Excel VBA

Examinons la syntaxe ci-dessous pour DatePart dans Excel VBA.

Comme nous pouvons le voir, quatre fonctions sont fournies au total pour cette fonction. Les deux premiers arguments sont obligatoires tandis que les deux autres arguments sont facultatifs. Cependant, si nous ne fournissons pas les deux derniers arguments, VBA a ses propres valeurs par défaut.

  • Intervalle: cet argument est fourni sous forme de chaîne à cette fonction. Cet argument peut être un mois, une semaine, une année, un jour ou même une heure ou des minutes ou des secondes. Par exemple, pour un trimestre, la syntaxe sera «q», ou pour l'année, la syntaxe sera «aaaa» et ainsi de suite.
  • Date: Il s'agit de la date d'entrée, nous fournissons à cette fonction pour la partie de laquelle nous voulons découvrir.
  • FirstDayofWeek: Ceci est un argument facultatif que nous donnons à cette fonction. Mais si nous ne fournissons pas le premier jour de la semaine à la fonction, VBA traite automatiquement DIMANCHE comme le premier jour de la semaine. Il existe différentes syntaxes pour fournir cet argument, qui sont les suivantes:

vbUseSystem (Cette syntaxe utilise les paramètres de l'API NLS), vbSunday (C'est l'argument par défaut), vbMonday, vbTuesday, vbWednesday, vbThursday, vbFriday, vbSaturday (Reste que tous ces arguments sont facultatifs à donner)

  • FirstWeekofYear: Il s'agit également d'un argument facultatif pour cette fonction. Mais encore une fois, si nous ne fournissons pas cet argument, VBA considère automatiquement la première semaine, quelle que soit la semaine du 1er janvier. Également pour cet argument, il existe différentes syntaxes, à savoir:

vbUseSystem, vbFirstJan1 (C'est la valeur par défaut), vbFirstFourDays (Cet argument commence par la première semaine qui a au moins les quatre premiers jours de la nouvelle année), vbFirstFullWeek (Cet argument commence par la première semaine complète de l'année).

Maintenant que nous avons appris les fonctions et ses arguments, testons cette fonction dans des exemples.

Comment utiliser la fonction DatePart dans Excel VBA?

Voici les différents exemples d'utilisation de la fonction DatePart dans Excel à l'aide du code VBA.

Vous pouvez télécharger ce modèle Excel VBA DatePart ici - Modèle Excel VBA DatePart

Excel VBA DatePart - Exemple # 1

Prenons une entrée de l'utilisateur comme date et partie que l'utilisateur veut découvrir, puis nous utiliserons la fonction DatePart et afficherons le résultat.

Suivez les étapes ci-dessous pour utiliser la fonction DatePart dans Excel VBA:

Étape 1: Dans l'onglet développeur de la section de code, cliquez sur Visual Basic qui nous mènera à l'éditeur VB.

Étape 2: Une fois dans l'éditeur VB, insérez un nouveau module dans le projet VBA comme indiqué ci-dessous.

Étape 3: Maintenant, double-cliquez sur le module et commencez à déclarer une nouvelle sous-procédure comme indiqué ci-dessous.

Code:

 Sous-échantillon () End Sub 

Étape 4: Définissez trois variables, une chaîne et une date qui contiendront la partie date et la date de notre entrée et une autre un entier qui stockera notre sortie.

Code:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer End Sub 

Étape 5: Dans la variable de date, demandez à l'utilisateur de saisir la date d'entrée.

Code:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") End Sub 

Étape 6: Dans Prt, qui est une partie, saisissez l'utilisateur pour la partie de la date que nous devons découvrir.

Code:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") Prt = InputBox ("Enter Date Part") End Sub 

Étape 7: Maintenant, dans la variable Res qui est le résultat, découvrons le résultat en utilisant la fonction DatePart comme suit.

Code:

 Sub Sample () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") Prt = InputBox ("Enter Date Part") Res = DatePart (Prt, Dt) End Sub 

Étape 8: Affichez la valeur stockée dans Res à l'aide de la fonction msgbox.

Code:

 Sous-échantillon () Dim Dt As Date, Prt As String, Res As Integer Dt = InputBox ("Enter a Date") Prt = InputBox ("Enter Date Part") Res = DatePart (Prt, Dt) MsgBox Res End Sub 

Étape 9: Maintenant, exécutons le code ci-dessus en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture et fournissez une date comme suit.

Étape 10: Entrez la valeur de la partie date.

Étape 11: Appuyez sur OK pour voir le résultat comme indiqué ci-dessous.

Nous obtenons 1 comme résultat car la date que nous avons fournie en tant qu'entrée tombe au premier trimestre de l'année.

Excel VBA DatePart - Exemple # 2

Cette fois, fournissons la date directement à la fonction dans le code. Suivez les étapes ci-dessous pour utiliser la fonction DatePart dans Excel VBA:

Étape 1: dans le même module, définissez une autre sous-procédure, comme indiqué ci-dessous.

Code:

 Sub Sample1 () End Sub 

Étape 2: Définissez une variable comme Entier et une variable comme Date comme indiqué ci-dessous.

Code:

 Sub Sample1 () Dim Dt As Date, Res As Integer End Sub 

Étape 3: Fournissez une date à la variable.

Code:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # End Sub 

Étape 4: Dans la variable Res, calculons la semaine de la date à l'aide de la fonction DatePart.

Code:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) End Sub 

Étape 5: Affichez la valeur stockée dans la variable à l'aide de la fonction msgbox.

Code:

 Sub Sample1 () Dim Dt As Date, Res As Integer Dt = # 2/2/2019 # Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Étape 6: Exécutez le code ci-dessus en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture pour obtenir le résultat suivant.

La date que nous avons fournie en entrée tombe dans la cinquième semaine de l'année.

Excel VBA DatePart - Exemple # 3

Essayons un exemple concret. Dans la feuille 1 de la cellule A1, j'ai utilisé la formule = Now () pour obtenir la date et l'heure actuelles et nous découvrirons la partie date de cette cellule.

Suivez les étapes ci-dessous pour utiliser la fonction DatePart dans Excel VBA:

Étape 1: dans le même module, définissez une autre sous-procédure comme suit.

Code:

 Sub Sample2 () End Sub 

Étape 2: Définissez deux variables, l'une comme Date et l'autre comme un entier.

Code:

 Sub Sample2 () Dim Dt As Date, Res As Integer End Sub 

Étape 3: Dans la variable Dt store, la valeur de la cellule A1 est la suivante.

Code:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value End Sub 

Étape 4: Maintenant, dans la variable res, calculons la partie semaine pour l'entrée à l'aide de la fonction DatePart.

Code:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value Res = DatePart ("ww", Dt) End Sub 

Étape 5: Affichez la valeur stockée dans la variable à l'aide de la fonction Msgbox.

Code:

 Sub Sample2 () Dim Dt As Date, Res As Integer Dt = Range ("A1"). Value Res = DatePart ("ww", Dt) MsgBox Res End Sub 

Étape 6: Exécutez le code ci-dessus en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture pour obtenir le résultat suivant.

La date actuelle est le 25 juillet, soit la 30 e semaine de l'année 2019.

Choses dont il faut se rappeler

  • Il s'agit de la fonction date mais renvoie une valeur entière.
  • Les deux premiers arguments sont obligatoires tandis que les deux autres arguments sont facultatifs.
  • VBA a ses propres arguments par défaut si nous ne fournissons pas les deux derniers arguments à la fonction DatePart.
  • Cette fonction est une fonction VBA et non une fonction de feuille de calcul.

Articles recommandés

Ceci est un guide de VBA DatePart. Nous expliquons ici comment utiliser la fonction DatePart dans Excel à l'aide du code VBA ainsi que quelques exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. VBA DateAdd
  2. AUJOURD'HUI Formule dans Excel
  3. Fonction de date VBA
  4. Fonction NOW Excel
  5. Comment utiliser le format de date VBA dans Excel?
  6. Où écrire du code dans VBA?

Catégorie: