Fonction Excel VBA CDate

Avez-vous entendu parler de la fonction ou de la commande par laquelle nous pouvons convertir quoi que ce soit en date et heure? Oui, avec la fonction Date, nous avons la fonction CDate dans VBA qui le fait. CDate est la fonction d'Excel mais cela peut également être fait en VBA. CDate convertit tout sauf au format de date standard. Cela peut également être utilisé pour convertir l'heure avec la date.

La syntaxe de CDate est la syntaxe la plus simple que nous ayons jamais vue. CDate ne considère que l'expression comme la date et l'heure dans n'importe quel format comme entrée. En voici la syntaxe.

Nous avons juste besoin de saisir n'importe quel nombre, date ou heure dans n'importe quel format que nous avons et CDate les convertira automatiquement au format de date et d'heure standard.

Comment utiliser la fonction CDate Excel VBA?

Nous allons apprendre à utiliser une fonction VBA CDate avec quelques exemples dans Excel.

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

VBA CDate - Exemple # 1

Nous prendrons d'abord un exemple simple. Dans cet exemple, nous allons essayer de convertir un type simple de date en un format standard qui est en fait intégré à Excel par défaut.

Suivez les étapes ci-dessous pour utiliser la fonction CDate dans VBA.

Étape 1: Ouvrez un module disponible dans l'onglet de menu Insertion, comme illustré ci-dessous.

Étape 2: Maintenant, écrivez la sous-procédure de VBA CDate sous n'importe quel nom, comme indiqué ci-dessous. Mais il est recommandé d'écrire le nom de la sous-procédure au nom du travail effectué principalement.

Code:

 Sub VBA_CDate () End Sub 

Étape 3: Maintenant, déclarez une variable, disons que c'est Input1 en tant que chaîne . En considérant le type de données comme String car nous citerons l'entrée dans la combinaison de chiffres et d'alphabets.

Code:

 Sub VBA_CDate () Dim Input1 As String End Sub 

Étape 4: Maintenant, nous allons déclarer une autre variable par laquelle nous verrons la sortie. Et cette variable sera utilisée pour voir les dates.

Code:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date End Sub 

Étape 5: Choisissez maintenant une date qui est dans la combinaison de chiffres et d'alphabets et citez-la en virgules inversées comme indiqué ci-dessous.

Code:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1er septembre 2019" End Sub 

Étape 6: Pour convertir la date d'entrée dans un format standard, nous utiliserons la fonction CDate comme indiqué ci-dessous avec la variable FormatDate qui a été déclarée ci-dessus. Et utilisez la valeur stockée dans la variable Input1.

Code:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1er septembre 2019" FormatDate = CDate (Input1) End Sub 

Étape 7: Et pour voir la sortie, nous utiliserons Msgbox pour l'assigner avec la fonction FormatDate de Date.

Code:

 Sub VBA_CDate () Dim Input1 As String Dim FormatDate As Date Input1 = "1er septembre 2019" FormatDate = CDate (Input1) MsgBox FormatDate End Sub 

Étape 8: Maintenant, exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture. Nous obtiendrons la date que nous avons choisie comme 1er septembre 2019, qui est maintenant convertie au format de date standard le 9/1/2019, comme indiqué ci-dessous.

Nous pouvons essayer différentes combinaisons multiples de dates qui existent vraiment et voir quel type de sortie standard nous obtenons.

VBA CDate - Exemple # 2

Dans cet exemple, nous verrons différents types de date et d'heure qui existent et quel type de sortie nous obtiendrions en utilisant VBA CDate. Pour cela, suivez les étapes ci-dessous:

Étape 1: Écrivez la sous-procédure de VBA CDate comme indiqué ci-dessous.

Code:

 Sub VBA_CDate2 () End Sub 

Étape 2: Maintenant, nous allons déclarer 3-4 différentes variables de type de données Date. Déclarons la première variable comme Date1 et lui donnons le type de données comme Date comme indiqué ci-dessous.

Code:

 Sub VBA_CDate2 () Dim Date1 As Sub Date End Sub 

Étape 3: Attribuez maintenant le nombre que nous voulons convertir au format Date. Nous avons choisi un nombre aléatoire comme 12345.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" End Sub 

Étape 4: De la même manière, définissez une autre variable Date2 comme type de date Date, comme indiqué ci-dessous.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date End Sub 

Étape 5: Maintenant, à nouveau dans la variable Date2, pensez à mettre une date dans n'importe quel format. Ici, nous avons gardé le 12/3/45 comme entrée de date.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" End Sub 

Étape 6: De plus, nous déclarerons à nouveau une autre variable Date3 comme Date.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date End Sub 

Étape 7: Ici, nous attribuerons la valeur de n'importe quelle heure comme indiqué ci-dessous à 12 h 10 au format 24 heures.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" End Sub 

Étape 8: Enfin, nous allons déclarer une autre variable Date4 comme Date.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date End Sub 

Étape 9: Et ici, nous donnerons une valeur décimale comme 0, 123 ou vous pouvez choisir n'importe quelle valeur selon les besoins.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" End Sub 

Il y a maintenant 2 façons de voir la sortie des valeurs stockées dans les différentes variables déclarées ci-dessus. MsgBox nous permettra seulement de voir toutes les valeurs simultanément mais en utilisant Debug.print nous permettra de voir toutes les variables sorties en une seule fois.

Étape 10: Donc, ici, il vaut mieux choisir Debug.Print comme indiqué ci-dessous. Et sur la même ligne, affectez toutes les variables à partir de la date 1 à la date 4.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = "12345" Dim Date2 As Date Date2 = "12/3/45" Dim Date3 As Date Date3 = "00:10:00" Dim Date4 As Date Date4 = "0.123" Débogage. Imprimer Date1, Date2, Date3, Date4 End Sub 

Étape 11: Et pour voir la sortie, nous utiliserons la fenêtre immédiate comme indiqué ci-dessous. Pour y accéder, accédez à l'onglet du menu Affichage et sélectionnez Fenêtre immédiate comme indiqué ci-dessous.

Étape 12: Maintenant, exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton Lecture. Nous verrons, le type de données date nous a donné la sortie mais ce n'est pas au format de données standard.

Étape 13: Pour extraire les données standard, nous utiliserons également CDate ici. Ainsi, nous assignerons CDate pour chaque date et heure que nous avons utilisées pour différentes variables comme indiqué ci-dessous.

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 Comme Date Date4 = CDate ("0.123") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Étape 14: Maintenant, exécutez le code en appuyant sur la touche F5 ou en cliquant sur le bouton de lecture.

Nous verrons que la sortie de Date et de CDate est la même, mais il existe une différence commune de base entre les deux. Et c'est-à-dire que CDate peut convertir tout type de nombres au format de date standard.

Étape 15: Essayons n'importe quel texte ou alphabet avec CDate et voyons ce que nous obtenons. Nous avons donc entré du texte aléatoire comme abc dans la variable Date4 .

Code:

 Sub VBA_CDate2 () Dim Date1 As Date Date1 = CDate ("12345") Dim Date2 As Date Date2 = CDate ("12/3/45") Dim Date3 As Date Date3 = CDate ("00:10:00") Dim Date4 As Date Date4 = CDate ("abc") Debug.Print Date1, Date2, Date3, Date4 End Sub 

Étape 16: exécutez à nouveau le code. Nous obtiendrons une boîte de message avec un message d'erreur sous la forme d'une incompatibilité de type . En effet, CDate ne peut pas lire et convertir le texte dans un format de date et d'heure standard.

Avantages et inconvénients de la fonction CDate Excel VBA

  • Cela peut convertir n'importe quelle date ou heure au format standard selon les besoins.
  • VBA CDate interprète n'importe quel nombre comme valeur de date et le convertit plus tard en un format standard.
  • Il ne peut pas interpréter et convertir le texte au format de date.

Choses dont il faut se rappeler

  • CDate ne peut considérer les nombres qu'en entrée mais ce nombre peut être dans n'importe quel format.
  • La valeur du texte ne peut pas être convertie.
  • Si nous alimentons une heure ou une date qui est déjà au format standard, elle renverra à nouveau la même valeur que la sortie.
  • La fonction Date et CDate fonctionnent de la même manière. Alors que par CDate, nous pouvons convertir à la fois l'heure et la date.

Articles recommandés

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

  1. Format de date VBA
  2. Fonction Excel DATEDIF
  3. VBA DateSerial
  4. Fonction Excel DATEDIF

Catégorie: