Faciliter la saisie dans un textbox

thomlau

XLDnaute Occasionnel
Bonjour à toutes et à tous.

Je viens vers vous pour donner une petite touche "exotique" à mon projet.

Je vous explique par du code :
Code:
Private Sub TextBox1_Change()

TextBox1.Value = Replace(TextBox1.Value, ";", ":")
TextBox1.Value = Replace(TextBox1.Value, "/", ":")
TextBox1.Value = Replace(TextBox1.Value, ",", ":")
TextBox1.Value = Replace(TextBox1.Value, "!", ":")
TextBox1.Value = Replace(TextBox1.Value, " ", ":")
TextBox1.Value = Replace(TextBox1.Value, ".", ":")
TextBox1.Value = Replace(TextBox1.Value, "§", ":")
TextBox1.Value = Replace(TextBox1.Value, "?", ":")

End Sub


Ce code très utile évite à l'utilisateur d'utiliser des caratères comme ; ou ! ou encore §, etc...
Ce textbox est utilisé pour la saisie d'horaires par plusieurs opérateurs plus ou moins expérimentés dans la saisie sur PC.

Je voudrais savoir s'il serait possible de saisir par exemple 600 et que ce chiffre se "transforme" en 6:00, tout comme 1215 se transformerait en 12:15.

J'en demande peut-etre beaucoup là...

Je reste a votre disposition pour des infos complémentaires.

A bientôt.
 

Pierrot93

XLDnaute Barbatruc
Re : Faciliter la saisie dans un textbox

Bonjour Thomlau

petite suggestion au passage, en lieu et place de ton code de "remplacement" :

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr(";/,! .$?$", Chr(KeyAscii)) > 0 Then KeyAscii = 58
End Sub

bon après midi
@+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Faciliter la saisie dans un textbox

Bonjour à tous,
Je voudrais savoir s'il serait possible de saisir par exemple 600 et que ce chiffre se "transforme" en 6:00, tout comme 1215 se transformerait en 12:15.
J'en demande peut-etre beaucoup là...
mais non mais non, c'est faisable

voir fichier joint

@ pierrot, si tu pouvais y jetter un coup d'oeil pour éviter la "double-validation"

à+
Philippe
 

Pièces jointes

  • 111.zip
    9.1 KB · Affichages: 52
  • 111.zip
    9.1 KB · Affichages: 60
  • 111.zip
    9.1 KB · Affichages: 58

Hulk

XLDnaute Barbatruc
Re : Faciliter la saisie dans un textbox

Hello les amis,

Pour l'embarras du choix, je propose ceci concernant le format heure dans le TextBox.

Bonne fin de journée !
 

Pièces jointes

  • Heures.xls
    33.5 KB · Affichages: 84
  • Heures.xls
    33.5 KB · Affichages: 88
  • Heures.xls
    33.5 KB · Affichages: 89

thomlau

XLDnaute Occasionnel
Re : Faciliter la saisie dans un textbox

Bonsoir;

J'ai adapté les deux premières solutions dans le code de mon projet. Ca fonctionne et je remercie les auteurs.

Hulk, je regarde ton fichier demain et je reviens sur ce fil pour en rendre compte de ton code.

Merci encore à vous trois. Bonne nuit.
 

Pierrot93

XLDnaute Barbatruc
Re : Faciliter la saisie dans un textbox

Bonjour à tous,

une autre approche en combinant les différents événements :

Code:
Option Explicit
Private Sub UserForm_Initialize()
TextBox1.MaxLength = 4
End Sub

Private Sub TextBox1_Enter()
TextBox1 = ""
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then Exit Sub
TextBox1 = Format(TextBox1, "00:00")
If CInt(Mid(TextBox1, 1, 2)) > 23 Then TextBox1 = 23 & Mid(TextBox1, 3, 3)
If CInt(Mid(TextBox1, 4, 2)) > 59 Then TextBox1 = Mid(TextBox1, 1, 3) & "59"
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("01234567879", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub

Après tout dépend de la finesse du contrôle que l'on veut mettre en place...

bonne journée
@+
 

thomlau

XLDnaute Occasionnel
Re : Faciliter la saisie dans un textbox

Bonjour à toutes et à tous.

Hulk, je viens de tester ton fichier. Lorsque je renseigne 200, ça devrait me marquer 2:00, et là ça affiche 20:0.
C'est pas grave puisque les 2 solutions précédentes fonctionnent, tout comme celle de Pierrot93.

Merci à vous de m'avoir aider sur ce coup.

@ bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 447
Messages
2 088 496
Membres
103 871
dernier inscrit
julienleburton