Problème Heure de midi (12h00) dans une Combobox

Signaler
Messages postés
2
Date d'inscription
mardi 15 janvier 2019
Statut
Membre
Dernière intervention
16 janvier 2019
-
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
-
Bonjour,

je suis en train de me construire un planning sur excel avec une mise à jour automatique de celui-ci.

Pour ce faire, je saisi un nouvel événement via un Userform où je saisi un Titre dans une textbox, une date, une heure de début et une heure de fin dans des combobox.

J'ai mis un code de contrôle sur la combobox d'heure de fin si elle est inférieure à l'heure de début.
Ce code fonctionne à merveille sauf pour 12h00 (où la combobox considère que c'est 0h00) et donc le message d'erreur s'affiche à chaque fois que je veux enregistrer un événement se finissant à 12h00.

Voici le code :

If CbXHeureFin <> "" And CbXHeureFin.Value < CbXHeureDeb Then
MsgBox "L'heure de fin doit être supérieure à l'heure de début !"
CbXHeureFin.Value = ""
End If
'CbXHeureFin est la Combobox d'heure de fin et CbXHeureDeb est la Combobox d'heure de début


Quelqu'un peut-il me dire comment résoudre ce problème ?
Merci par avance de votre aide

PS : je débute totalement sur un forum donc veuillez m'excuser si je ne m'y prend pas correctement pour poser ma question

3 réponses

Messages postés
32451
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 mai 2021
347
Bonjour,

Sous quel format entre tu tes heures dans la combo ?
Sous quel format sont tes heures dans CbXHeureDeb ?
Que contient ta variable CbXHeureDeb ?

par ce que là... j'ai l'impression que tu fais de la comparaison de text et non d'heures... d'où le souci....

Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
21
Salut Jordane,

C'est plus qu'une impression, c'est une certitude, le contenu d'un combobox est toujours du texte.


Bonjour Ugodelires75

Essaies :
  If CbXHeureFin.Value <> "" And Val(CbXHeureFin.Value) < Val(CbXHeureDeb.Value) Then
    MsgBox "L'heure de fin doit être supérieure à l'heure de début !"
    CbXHeureFin.Value = ""
  End If


PS : « sauf pour 12h00 (où la combobox considère que c'est 0h00) » Non, un combobox n'interprète rien, c'est parfois le VBA lorsqu'on compare les torchons et les serviettes (à ne pas mélanger !).
Il faut systématiquement typer les valeurs et les variables pour éviter ce genre de désagrément.

Cordialement
Patrice
Messages postés
2
Date d'inscription
mardi 15 janvier 2019
Statut
Membre
Dernière intervention
16 janvier 2019

Bonjour jordane45 et Patrice33740,

Merci pour vos réponses.

Patrice33740, j'ai appliqué ta petite correction mais, le problème existe toujours.

J'ai cependant trouvé une petite combine pour que mon test sur la combobox fonctionne :

comme j'alimente mes combobox pour les heures par des valeurs situées dans des cellules, pour 12h00, au lieu de taper 12:00:00 dans la cellule, j'ai entré 12:00:01 et le tour est joué.

Encore merci à vous d'avoir essayé de m'aider
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
21
C'est curieux !