Date au format VBA

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 leur 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 la tâche difficile.

Comment changer le format de date dans VBA?

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

Vous pouvez télécharger ce modèle Excel de date au format VBA ici - Modèle Excel de date au format 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 pour 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 comme « JJ-MM-AAA ».

Production:

Exemple # 2

De même, j'ai également appliqué différents codes de mise en forme pour d'autres cellules et voici 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 "Range (" A8 "). NumberFormat =" dddd mmmm yyyy "'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

Ensuite, dans la boîte de message, j'ai montré le résultat de la variable, mais avant de montrer le résultat, nous avons utilisé la fonction « FORMAT » pour formater la valeur de la variable « MyVal » et le format est donné est « DD-MM- YYYY ».

Code:

Format MsgBox (MyVal, "JJ-MM-AAA")

Ok, exécutons le code et voyons le résultat dans la boîte de message dans VBA.

Production:

Comme vous pouvez le voir ci-dessus, le résultat apparaît comme « 01-05-2019 ».

Maintenant, vous devez vous demander que nous avons fourni le numéro de série, mais le résultat indique la date. En effet, Excel stocke la date sous forme de numéros de série, donc la valeur 43586 est égale à la date «01-05-2019» et si vous augmentez le nombre de 1, soit 43587, la date sera «02-05-2019».

Code:

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

Things to Remember

  • The default date of your system will be applied to your excel as well.
  • Number Format property can be used to change the date format in VBA.
  • Using the FORMAT function, we can change the date format.
  • Excel stores date as serial numbers and if you apply date format it will show accordingly.