Format heure dans useform
Résolu
julia Namor
Messages postés
532
Statut
Membre
-
julia Namor Messages postés 532 Statut Membre -
julia Namor Messages postés 532 Statut Membre -
Bonjour, à tous
En fouillant un peu sur le net ; je suis tombée sur un code qui me permet d'entrer des horaires dans un userform et de renseigner une cellule .
Je bloque au niveau des controles dans le Form,
Je voudrais permettre à l'utilisateur de renseigner n'importe quel chiffre pour définir l'horaire
ex: 723 veut dire 07:23
11 veut dire 11:00 ( c'est déja le cas)
1243 donnera 12:43
je vous joins le fichier
Merci du coup de pouce
http://www.cjoint.com/c/EKxqiN57qtA
En fouillant un peu sur le net ; je suis tombée sur un code qui me permet d'entrer des horaires dans un userform et de renseigner une cellule .
Je bloque au niveau des controles dans le Form,
Je voudrais permettre à l'utilisateur de renseigner n'importe quel chiffre pour définir l'horaire
ex: 723 veut dire 07:23
11 veut dire 11:00 ( c'est déja le cas)
1243 donnera 12:43
je vous joins le fichier
Merci du coup de pouce
http://www.cjoint.com/c/EKxqiN57qtA
A voir également:
- Format heure dans useform
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Hp usb disk storage format tool - Télécharger - Stockage
- Format apfs - Guide
- Format bin - Guide
5 réponses
Bonjour,
Le premier argument de TimeSerial est les heures.
Du coup si tu inverses Left et Right :
tDate = TimeSerial(Left(tString, 2), Right(tString, 2), 0)
859 devient bien 8:59 et non plus 11:08 (qui était interprété avec 59:08=2j 11h 08min)
Mais 7, ça doit devenir 7h ou 0h07.
Avant les codes-barres, les caissières devaient saisir le prix au centime. Si tu te bases sur le même principe, tu lèves toute ambiguïté.
7h00 --> 700
0h07 --> 7 (ou 007)
A+
Le premier argument de TimeSerial est les heures.
Du coup si tu inverses Left et Right :
tDate = TimeSerial(Left(tString, 2), Right(tString, 2), 0)
859 devient bien 8:59 et non plus 11:08 (qui était interprété avec 59:08=2j 11h 08min)
Mais 7, ça doit devenir 7h ou 0h07.
Avant les codes-barres, les caissières devaient saisir le prix au centime. Si tu te bases sur le même principe, tu lèves toute ambiguïté.
7h00 --> 700
0h07 --> 7 (ou 007)
A+
Bonjour,
Essaies :
Essaies :
Private Sub TextBox1_Change() Dim s As String s = Right("0000" & Replace(Me.TextBox1.Value, ":", ""), 4) Me.TextBox1.Value = Left(s, 2) & ":" & Right(s, 2) End Sub
Bonjour Julia,
Laisser la possibilité d'entrer que 3 chiffres à l'utilisateur n'est pas top et peut être source d'erreur, en effet comment interpréter par exemple 124 ? 1 h 24 ou 12 h 40 ou 12 h 04 ???
Soit il faut demander à l'utilisateur (et l'obliger à) rentrer 4 chiffres 0124 ou 1204 et la macro de ton fichier ltransforme cette chaine numérique en heure valide
Soit tu tiens à ta possibilité de 3 chiffres (ou moins) il faut mieux dans ton userform prévoir 2 textbox l'un pour l'heure et l'autre pour les minutes et dans la macro associée au bouton Fermer mettre une instruction heurechoisie=textbox1&":"&textbox2
Et pour eviter une erreur si un des textbox est vide mettre dans le BeforeUpDate de chaque textbox une seule instruction :
Exemple pour le textbox1 :
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value = "" Then TextBox1.Value = 0
End sub
En fait dans ce cas toutes les instructions relatives au placement de l'heure dans la feuille et de vérification (pour l'instant dans l'AfterUpDate) doivent se trouver dans la macro associée au bouton :
Cdlmnt
Via
Laisser la possibilité d'entrer que 3 chiffres à l'utilisateur n'est pas top et peut être source d'erreur, en effet comment interpréter par exemple 124 ? 1 h 24 ou 12 h 40 ou 12 h 04 ???
Soit il faut demander à l'utilisateur (et l'obliger à) rentrer 4 chiffres 0124 ou 1204 et la macro de ton fichier ltransforme cette chaine numérique en heure valide
Soit tu tiens à ta possibilité de 3 chiffres (ou moins) il faut mieux dans ton userform prévoir 2 textbox l'un pour l'heure et l'autre pour les minutes et dans la macro associée au bouton Fermer mettre une instruction heurechoisie=textbox1&":"&textbox2
Et pour eviter une erreur si un des textbox est vide mettre dans le BeforeUpDate de chaque textbox une seule instruction :
Exemple pour le textbox1 :
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value = "" Then TextBox1.Value = 0
End sub
En fait dans ce cas toutes les instructions relatives au placement de l'heure dans la feuille et de vérification (pour l'instant dans l'AfterUpDate) doivent se trouver dans la macro associée au bouton :
Private Sub CommandButton1_Click() heurechoisie = TextBox1.Value & ":" & TextBox2.Value Sheets("horaires").Range("b1") = heurechoisie If Sheets("horaires").Range("b1").Value > Sheets("horaires").Range("h1").Value Or Sheets("horaires").Range("b1").Value < Sheets("horaires").Range("g1").Value Then MsgBox "Oops! Veuillez saisir un horaire compris entre 5:00 et 12:00", vbOKOnly, "Unexpected entry" TextBox1 = "" TextBox2 = "" Exit Sub End If UserForm1.Hide End Sub
Cdlmnt
Via
Merci à tous
via55 :
Laisser la possibilité d'entrer que 3 chiffres à l'utilisateur n'est pas top et peut être source d'erreur, en effet comment interpréter par exemple 124 ? 1 h 24 ou 12 h 40 ou 12 h 04 ???
Tes mises en garde sont pertinentes ; je n'avais pas vu sous cet angle.
en inversant le left/right de l'argument TimeSerial comme me l'a préconisé Zoul67, ça fonctionne mais il ya toujours le risque d'erreur car en entrant par exemple 7 il me met 00:07 ou 23 il met 00:23
En fait l'idéal ce serait d'obliger l'utilisateur à rentrer 4 chiffres horaires entre 00h00 et 23h59.
Bien à vous
Nb: Patrice je teste ton code ; merci
via55 :
Laisser la possibilité d'entrer que 3 chiffres à l'utilisateur n'est pas top et peut être source d'erreur, en effet comment interpréter par exemple 124 ? 1 h 24 ou 12 h 40 ou 12 h 04 ???
Tes mises en garde sont pertinentes ; je n'avais pas vu sous cet angle.
en inversant le left/right de l'argument TimeSerial comme me l'a préconisé Zoul67, ça fonctionne mais il ya toujours le risque d'erreur car en entrant par exemple 7 il me met 00:07 ou 23 il met 00:23
En fait l'idéal ce serait d'obliger l'utilisateur à rentrer 4 chiffres horaires entre 00h00 et 23h59.
Bien à vous
Nb: Patrice je teste ton code ; merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question