DateSerial VBA

Fonction Excel VBA DateSerial

La fonction DateSerial dans VBA renvoie la date à partir des valeurs fournies par les utilisateurs. Nous devons indiquer quelle est l'année, quel est le jour et quel est le mois. Le résultat sera basé sur le format de date de votre système.

Voici la syntaxe de la fonction DATESERIAL .

# 1 - Année: nous devons entrer le nombre entier comme quelle est l'année? Tout en fournissant un nombre entier, nous devons garder à l'esprit les choses ci-dessous.

  • Nous pouvons fournir des nombres de 0 à 9999.
  • Les nombres à un et deux chiffres de 0 à 99 seront traités de 1930 à 2029.
  • Le nombre entier négatif sera soustrait de l'année 2000. Par exemple, si vous fournissez -1, le résultat sera 1999 car 2000 - 1 = 1999.

# 2 - Mois: nous devons entrer le nombre entier comme quel est le mois? En entrant ce nombre, nous devons garder à l'esprit les choses ci-dessous.

  • Nous pouvons fournir des nombres de 1 à 12 uniquement.
  • Si la valeur entière fournie est 0, cela représentera le mois «décembre» de l'année précédente.
  • Si la valeur entière fournie est -1, cela représentera le mois «novembre» de l'année précédente. Comme ceci, lorsque la valeur négative augmente, il continuera à représenter le mois de l'année en arrière.
  • Si le nombre fourni est supérieur à 12, c'est-à-dire si le nombre est 13, cela représentera le mois «janvier» de l'année suivante, si le nombre est 14 alors il sera traité comme le mois «février» de l'année suivante.

# 3 - Jour: nous devons entrer le nombre entier comme quel est le jour? En entrant ce nombre, nous devons garder à l'esprit les choses ci-dessous.

  • Nous pouvons entrer des nombres entiers de 1 à 31 pour les jours du mois en cours.
  • Si le nombre est 0, il représentera le dernier jour du mois précédent.
  • Si le nombre est -1, il représentera l'avant-dernier jour du mois précédent.
  • Si vous indiquez le dernier jour de ce mois +1, cela représentera le premier jour du mois suivant. Par exemple, si le dernier jour d'août est le 31 et si vous indiquez le jour 31 + 1, il représentera le premier jour de septembre.

Comment utiliser la fonction DATESERIAL dans VBA?

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

Exemple 1

Pour utiliser la fonction DATESERIAL, commencez à écrire le code macro.

Étape 1: Démarrer la sous-procédure

Tout d'abord, créez une sous-procédure VBA comme indiqué ci-dessous.

Étape 2: déclarer la variable

Déclarez maintenant une variable comme DATE.

Étape 3: attribuez la fonction DateSerial à cette variable.

Maintenant, pour cette variable, attribuez la fonction DATESERIAL.

Étape 4: Entrez maintenant les valeurs de l'année, du mois et du jour dans la fonction DateSerial

Pour l'approvisionnement de l'année 2019, pour l'approvisionnement du MOIS 08 et pour l'approvisionnement du JOUR 05.

Étape 5: Afficher le résultat dans la boîte de message

Affichez maintenant le résultat de la variable «Ma date» dans la boîte de message.

Code:

 Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Mydate End Sub 

Étape 6: exécutez le code

Maintenant, exécutez ce code pour voir ci-dessous la date.

Le résultat indique "8/5/2019". Dans mon système, le format de date est sous la forme "MM-JJ-AAAA", c'est pourquoi le résultat est également dans le même format.

Nous pouvons également changer le format de la date en utilisant la fonction FORMAT dans VBA. Appliquez la fonction FORMAT comme ci-dessous.

Code:

 Option Explicit Sub DateSerial_Example1 () Dim Mydate As Date Mydate = DateSerial (2019, 8, 5) MsgBox Format (Mydate, "DD-MMM-YYYY") End Sub 

Cela appliquera le format «JJ-MMM-AAAA» et le résultat est le suivant.

Exemple # 2

Nous pouvons également déclarer des variables et fournir les valeurs à ces variables. Pour un exemple, regardez le code ci-dessous.

Code:

 Sub DateSerial_Example2 () Dim Mydate As Date Dim MyYear As Integer Dim MyMonth As Integer Dim MyDay As Integer MyYear = 2019 MyMonth = 8 MyDay = 5 Mydate = DateSerial (MyYear, MyMonth, MyDay) MsgBox Format (Mydate, "JJ-MMM-AA) ") End Sub 

Au lieu de fournir l'année, le mois et le jour directement à la fonction DATESERIAL, nous avons déclaré des variables et leur avons attribué des valeurs. Ensuite, nous avons fourni des variables à la fonction DATESERIAL.

C'est ainsi que nous pouvons utiliser des variables dans VBA pour stocker des valeurs.

Exemple # 3

Maintenant, nous allons expérimenter avec l'année. Je vais attribuer la valeur de l'année à 1 et voir le résultat.

Les nombres à un et deux chiffres dans YEAR représentent une année de 1930 à 2029. Donc 01 signifie 2001, 02 signifie 2002 et ainsi de suite.

Modifions maintenant le numéro du mois à 0 et voyons le résultat.

Regardez le code ici, l'année est 2019 et le mois est 0. Mais regardez le résultat qu'il indique 05-déc.-2019, alors qu'une année fournie est 2019, il indique 2018, c'est-à-dire l'année précédente.

En effet, puisque nous avons fourni le mois en tant que 0, la fonction DATESERIAL prend le mois jusqu'au dernier mois de l'année précédente et change également l'année en conséquence.

Comme ça, essayez différents nombres pour voir l'impact de la fonction.

Choses à retenir

  • Vous devez savoir quel nombre représente quelle année, quel mois et quelle garderie. Lisez attentivement l'explication de la syntaxe pour comprendre.
  • Le résultat sera basé sur le format de date de votre système, si vous voulez un résultat modifié, vous devez appliquer la fonction FORMAT, mentionner le format de date selon votre convenance.