Date de format VBA - Comment changer le format de date dans le code VBA?

Table des matières

Date au format Excel VBA

Pour formater une date dans VBA, nous utilisons la fonction FORMAT intégrée elle-même, elle prend l'entrée comme format de date et renvoie le format souhaité requis, les arguments requis pour cette fonction sont l'expression elle-même et le type de format.

Le formatage de la date et de l'heure sont des choses sensibles dans Excel, et la même chose s'applique également à VBA. La date et l'heure par défaut sont basées sur la date du système à laquelle nous travaillons, qui peut varier d'un système à l'autre. Dans cet article, nous allons vous montrer différentes techniques de mise en forme des dates avec des codes VBA.

Pour changer le format de date avec le codage VBA, nous devons être conscients de ce que sont les formats de date et de son impact sur la date.

Le tableau ci-dessous montre les différents formats de date et leurs codes.

Donc, si vous gardez à l'esprit le tableau ci-dessus, le formatage de la date via le codage VBA n'est pas du tout une tâche difficile.

Comment changer le format de date dans VBA?

Vous trouverez ci-dessous des exemples de format de date Excel VBA.

Exemple 1

Par exemple, nous avons la même date dans plusieurs cellules de la feuille de calcul, comme indiqué ci-dessous.

Nous allons maintenant appliquer différents formats de date pour la même date afin de voir l'impact à différents codes de format de date.

Tout d'abord, copiez également les mêmes données dans la colonne suivante pour voir l'impact.

Pour la première date, c'est-à-dire la cellule A1, nous appliquerons le format «JJ-MM-AAAA» .

Dans le code, nous devons d'abord sélectionner la cellule à l'aide de l' objet RANGE .

Code:

Sub Date_Format_Example1 () Range ("A1") End Sub

Puisque nous modifions le format de date de la cellule, nous devons accéder à la propriété « Format de nombre » de l'objet RANGE.

Code:

Sub Date_Format_Example1 () Range ("A1"). NumberFormat End Sub

Après avoir accédé à « Format des nombres », nous devons définir le format des nombres en mettant le signe égal et appliquer le code de format entre guillemets.

Code:

Sub Date_Format_Example1 () Range ("A1"). NumberFormat = "jj-mm-aaa" 'Ceci changera la date en "23-10-2019" End Sub

Lorsque nous exécutons ce code, il appliquera le format numérique à la cellule A1 en tant que " JJ-MM-AAAA"

Production:

Exemple # 2

De même, j'ai également appliqué différents codes de mise en forme pour d'autres cellules, et ci-dessous le code VBA pour vous.

Code:

Sub Date_Format_Example2 () Range ("A1"). NumberFormat = "dd-mm-yyy" 'Cela changera la date en "23-10-2019" Range ("A2"). NumberFormat = "ddd-mm-yyy" 'Cela changera la date en plage "mer-10-2019" ("A3"). NumberFormat = "jjjj-mm-aaaa"' Cela changera la date en plage "mercredi-10-2019" ("A4") .NumberFormat = "jj-mmm-aaaa" 'Ceci changera la date en "23-oct-2019" Range ("A5"). NumberFormat = "dd-mmmm-yyy"' Cela changera la date en "23- Octobre-2019 "Range (" A6 "). NumberFormat =" jj-mm-aa "'Ceci changera la date en" 23-10-19 "Range (" A7 "). NumberFormat =" jjj mmm aaaa "' Ceci changera la date en "Wed Oct 2019"Plage ("A8"). NumberFormat = "jjjj mmmm aaaa" 'Cela changera la date en "mercredi octobre 2019" End Sub

Le résultat de ce code sera le suivant.

Production:

Modifier le format de la date à l'aide de la fonction FORMAT

Dans VBA, nous avons une fonction appelée FORMAT, qui peut être utilisée pour appliquer le format souhaité à la cellule.

Nous avons juste besoin de spécifier la valeur de «Expression» et d'appliquer le «Format» en conséquence.

Regardez le code ci-dessous pour un exemple.

Code:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYYY") End Sub

Dans le code ci-dessus, j'ai défini la variable comme variante (qui peut contenir n'importe quelle valeur).

Code:

Dim MyVal comme variante

Ensuite, pour cette variable, j'ai attribué la valeur 43586.

Code:

MyVal = 43586

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 MsgBox Format (MyVal, "DD-MM-YYY") End Sub

Choses dont il faut se rappeler

  • La date par défaut de votre système sera également appliquée à votre Excel.
  • La propriété Number Format peut être utilisée pour modifier le format de date dans VBA.
  • En utilisant la fonction FORMAT, nous pouvons changer le format de la date.
  • Excel stocke la date sous forme de numéros de série et si vous appliquez le format de date, il s'affichera en conséquence.

Articles intéressants...