Résolu Microsoft 365 [VBA] Gestion format date hh:mm:ss,milli dans un Userform

Nicolala

XLDnaute Nouveau
Bonjour à tous !

J'ai un souci pour le boulot, on manipule des logs d'enregistrement véhicule, avec un format de date contenant des millisecondes

Le format est de type hh:mm:ss,000 avec 000 pour les millisecondes.
Par exemple, la valeur numérique 0,0573972222222222 nous donne avec ce format 01:22:39,120

Jusque là, pas de problème, cependant, je souhaite ajouter un userform avec une combobox (appelée Timestamp1 dans mon code) pour permettre à l'utilisateur de choisir la date qu'il souhaite observer.
La combobox affiche les dates au bon format, mais une fois la date sélectionnée, elle l'affiche au format numérique !
Quand j'essaye en VBA de la mettre au bon format, la date affichée est mauvaise, voir arrondi à la seconde près

VB:
Private Sub Timestamp1_Change() 'Menu déroullant 1
        
    Timestamp1.Value = Format(Timestamp1.Value, "hh:mm:ss,000") 'on adapte le format de cellule, par défaut les combobox affichent la val numérique

End Sub

J'ai la sensation qu'Excel gère mal les dates incluant les millisecondes, vous avez une idée ?

Je vous remercie, et bonne journée !
 
Ce fil a été résolu! Aller à la solution…

Dranreb

XLDnaute Barbatruc
Bonjour.
Garnissez la liste de la ComboBox d'un tableau où vous aurez converti les nombres en textes
Par exemple comme ça :
VB:
Dim T(), L As Long, Sec As Double
T = [TabChrono[Temps]].Value
For L = 1 To UBound(T, 1)
   Sec = T(L, 1) * 86400
   T(L, 1) = Format$(Int(Sec / 60) / 1440, "h:mm:") & Format$(Sec - Int(Sec / 60) * 60, "00.000")
   Next L
ComboBox1.List = T
 
Ce message a été identifié comme étant une solution!
Dernière édition:

Nicolala

XLDnaute Nouveau
Arf j'ai peut être parler un peu vite ...

Avec ta solution, je perds le format numérique, ce qui plante derrière mes RECHERCHEV etc ...
Les valeurs retournées dans la combobox ne sont plus comprises, car en format Texte désormais ...
 

Nicolala

XLDnaute Nouveau
Complètement, dans les systèmes temps réel c'est l'unité de référence
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Pourquoi rechercher quoi que ce soit puisque ComboBox1.ListIndex + 1 donne directement le numéro de ligne dans la plage de départ ?
 
Ce message a été identifié comme étant une solution!

Nicolala

XLDnaute Nouveau
Décidément tu m'es bien utile !
Effectivement avec la propriété ListIndex, j'ai la position de la date choisie dans la Combobox, reste plus qu'à adapter et c'est réglé

Je te remercie Dranreb !
 

Modeste geedee

XLDnaute Barbatruc
Complètement, dans les systèmes temps réel c'est l'unité de référence
ce que je voulais faire préciser :
y a-t-il probabilité de plusieurs événements à la même seconde ???
;) Rares sont les constructeurs automobiles dont la cadence de production est de l'ordre de 10 secondes ! ( ~6000 véhicules jour)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas