Faciliter la saisie dans un textbox

  • Initiateur de la discussion Initiateur de la discussion thomlau
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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
@+
 
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

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.
 
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
@+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
945
Retour