Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Solution de comparaison de dates en VB

2 réponses
Avatar
Llew
Bonjour,

pour info, voici le code que j'ai écrit en VB pour un fichier excel :
comparaison d'une liste de dates avec une date saisie par l'utilisateur

la comparaison de date n'est pas très friendly sous VB, dans les listes
de news j'ai trouvé des fonctions plus ou moins simples et rapides,

alors pourquoi ne pas prendre le problème dans l'autre sens et comparer
des string "yyyymmdd" d'autant que les fonctions de comparaisons de
string sous VB foisonnent ?

solution adoptée dans mon programme, sans ligne de code supplémentaire
et très efficace

(S0 et S1 variables non déclarées : donc string par défaut sous VB)

' récupération date via une fenetre
S0 = UserForm2.CBoxYear.Value + UserForm2.CBoxMonth.Value +
UserForm2.CBoxDay.Value

' lecture des lignes de valeurs en colonne B
' (valeur dd/mm/yyyy affichage personnalisé "dd mmm yyyy")
' jusqu'à récupération de celle correspondant à la date recherchée
L0 = 3
S1 = Format$(Cells(L0, 2).Value, "yyyymmdd")
While Cells(L0, 2).Value <> "" And StrComp(S0, S1) > -1
L0 = L0 + 1
S1 = Format$(Cells(L0, 2).Value, "yyyymmdd")
Wend


--- Llew ---

2 réponses

Avatar
David C.
S'il s'agit juste de comparer la date (donc sans l'heure) il faut savori
qu'excel gère les dates comme des nombres et qu'une unité ( 1 ) correspond à
un jour. Donc il suffit de prendre la partie entière des nombres lus et de
celui entré par l'utilisateur (ou éventuellement en utilisant DateSerial si
plus facile)

si les deux nombres sont égaux c'est la même date.
Chercher les dates qui ont un jour de plus ? DateLue = DateUtilisateur +1
etc...

c'est peut-être plus "rapide"...
Avatar
Llew
je teste et j'essaie

thanks,
Llew