TextBox : format Heure

Bonjour,

Je voudrais formater l'encodage hh:mm dans une textbox.

En gros, si on tape 0630, il va indiquer 06:30

Ensuite dans mon userform, j'ai une textbox avec une heure de début et une heure de fin (formaté comme la demande au dessus). Je voudrais qu'il fasse un calcul en minute de la différence et me l'affiche dans une troisième textbox.

Merci beaucoup

Bonsoir,

bienvenu sur le forum !

Je vois que vous avez plus de chance que nous !

En effet, vous avez un USF avec des textbox et nous on a rien !

Merci de laisser un fichier, et si ce n'est pas l'original, au moins un fichier représentatif de votre demande.

@ bientôt

LouReeD

Bonjour,

LouReeD,

Ci-joint ma modeste contribution, je n'ai pas été chercher plus loin que la demande, idéalement, il faudrait aussi contrôler qu'il s'agit bien d'une heure et gérer les erreurs de saisie.

106heure.xlsm (43.71 Ko)

Bonsoir le forum

Bonsoir ofleisheuer, LouReeD & oxydum

@ oxydum : très concise et épurée ta démo

Je tente la mienne qui s'assure que les heures entrées soient conformes.

Ma question : pourrait on éventuellement simplifier mon code et éventuellement faire en sorte que si le nombre de minutes est trop important, de le transformer en hh : mm ?

Bonne soirée à toutes & à tous

@+ Ericcool02

J'ai fait un contrôle pour m'assurer que l'entrée soit conforme à une vraie heure, si on est avant 10:00, il ajoute automatiquement un zéro, si on dépasse 24:00 il reste à minuit, pareil pour les minutes pas plus de 59.

J'ai fait en sorte que si on saisit : 8 30 10 99 on se retrouve avec 08:30 dans la première Textbox, 10:59 dans la seconde.

54heure.xlsm (46.73 Ko)

Bonsoir

A voir par le keypress

Private Sub Textbox1_keypress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim AKey$
AKey = "[01234567989:]"
If Not ChrW(KeyAscii) Like AKey Then KeyAscii = 0
If Len(TextBox1) = 5 Then KeyAscii = 0: Exit Sub
If Len(TextBox1) = 0 And Not ChrW(KeyAscii) Like "[0-1-2]" Then KeyAscii = 0
If Len(TextBox1) = 1 And TextBox1 = 2 And Not ChrW(KeyAscii) Like "[0-1-2-3]" Then KeyAscii = 0
If Len(TextBox1) = 3 And Not ChrW(KeyAscii) Like "[0-1-2-3-4-5]" Then KeyAscii = 0
If Len(TextBox1) = 2 Then
If ChrW(KeyAscii) <> ":" Then KeyAscii = Asc(":")
End If
End Sub

A+

Maurice

Re le fil,

Bonjour archer

Ma version légèrement modifiée (il y avait une erreur si l'heure n'était pas valide dans le Txt2).

N'étant qu'un bidouilleur en Vba, pourrait on éventuellement simplifier mon code et éventuellement faire en sorte que si le nombre de minutes est trop important (TextBox3), de le transformer en hh : mm ?

Merci à vous

@+ Ericcool02

reBonjour,

Merci à tous pour vos réponses mais j'ai essayé d'implanter vos propositions dans mon formulaire mais en vain.

Je vous l'envoi pour voir ce que vous pouvez m'aider à faire.

L'idée est que j'entre un valeur dans leschamps Start Time et End time et dans le During, il me donne la vauleur en minutes.

Merci beaucoup pour votre aide.

15issues-form.xlsm (52.71 Ko)

Re le fil

A tester. A revoir les propriétés "TabIndex" de tes contrôles pour la souplesse de tes déplacements dans ton USF.

@+

114issues-form2.xlsm (50.78 Ko)

C'est exactement ça.

Merci beaucoup. Grâce à vous tous, j'apprend de plus en plus le langage VBA

Rechercher des sujets similaires à "textbox format heure"