>> Électroniques Technologie >  >> Maison intelligente >> Vie intelligente

Comparaison de dates dans VBA

La comparaison de dates dans Microsoft Visual Basic pour Applications n'est pas différente de la comparaison de n'importe quel autre type de données. Les valeurs que vous comparez doivent être de type "Date". Vous pouvez utiliser les opérateurs de comparaison standard :"<" pour "inférieur à" ; "<=" pour "inférieur ou égal à" ; ">" pour "supérieur à" ; ">=" pour "supérieur ou égal à" ; "=" pour "égal à" ; et "<>" pour "différent de". Vous pouvez également utiliser deux opérateurs de comparaison, "Is" et "IsNot".

Type de date VBA

Il est utile de se rappeler comment VBA stocke les valeurs de date en mémoire lorsque vous comparez des dates. Une date est stockée sous la forme d'un nombre à virgule flottante double précision ou d'un Double. La partie entière longue correspond au nombre de jours, positifs ou négatifs, depuis le 30 décembre 1899. La partie décimale correspond au temps qui s'est écoulé depuis minuit. Une date sans heure a sa partie décimale mise à zéro. Par exemple, le 1er mai 1967 est stocké sous la forme 24593.0. Cela signifie que lorsque VBA compare deux dates, il compare en fait deux nombres qui représentent des jours.

Chaîne de caractères Vs. Date

Lorsque vous comparez des dates dans VBA, vous devez vous assurer que les valeurs que vous comparez ont un type "Date" et ne sont pas des chaînes de caractères. Par exemple, la chaîne de caractères "01/05/1999" est inférieure à la chaîne de caractères "31/12/1900" car "05" précède "12". Convertissez une chaîne de caractères en un type de date à l'aide de la fonction "CDate", par exemple, "CDate(TextBox.Value)".

Fonctions utiles

En plus de CDate(), il existe d'autres fonctions utiles que vous pouvez utiliser lors de la comparaison de dates. La fonction "Date()" fournit la date du jour comme valeur de date. La fonction "Now()" fournit la date et l'heure du jour en tant que valeur Date. Étant donné que le type de données Date inclut également un composant temporel, vous pouvez extraire uniquement la partie date d'une variable lors de la comparaison de dates à l'aide de la fonction "DateValue()", par exemple, "Si soumission> DateValue(deadline) Then ..."

Arithmétique des dates

Étant donné qu'une date est stockée sous la forme du nombre de jours depuis le 30 décembre 1899, vous pouvez inclure l'arithmétique de date lors de la comparaison de dates dans VBA. Par exemple, si un billet expire trois jours après son achat, vous pouvez rechercher un billet expiré avec un code VBA semblable au suivant :

Fonction publique expirée (achat comme date) As Boolean expiré =Faux Si achat+3> Date() Alors expiré =Vrai Fin Si fonction de fin


Vie intelligente