billgatesanonym Normand, ex-Parisien. | Je crois que le problème vient de l'égalité, car il y a peu de chances qu'elle soit vérifier, puisque l'heure est stockée sous la forme d'une fraction.
Donc je pense qu'il y aurait trois solutions :
- Arrondir les fractions, par exemple à seulement 3 chiffres après la virgule au lieu des 6 (si je ne me trompe pas) chiffres.
- Remplacer l'égalité par supérieur à heure - delta, et inférieur à heure + delta.
- (Ma solution préférée) Convertir en heure, minutes, secondes, et faire la comparaison sur ces trois parties. La conversion se fait avec hour(), mnute(), et second(). Cela donnerait :
sub test() Dim choix, heure, i As Variant choix = Application.Inputbox(prompt:="choisir heure", type:= 1) heure = TimeValue(choix) choix_hh = Hour(heure)
choix_mm = Minute(heure)
choix_ss = Second(heure)
i = 1 While choix_hh <> hour(cells(i, 1)) or choix_mm <> minute(cells(i, 1)) or choix_ss <> second(cells(i, 1))
i = i + 1 Wend cells(i, 1).select end sub |
|