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 !

claude40

XLDnaute Occasionnel
Bonjour a tous
dans l'userform du fichier suivant,je et il possible dans les textbox de pouvoir préinstaller la virgule.

je m'explique je voudrais si c'est possible quand je tape la donné la textbox de l'userform que la virgule y soit deja pour éviter l'erreur avec le point.
je voudrais dans 2,3,4éme textbox que la virgule se place aprés le premier chiffre.
quelqu'un a t'il la solution?

merci d'avance
Regarde la pièce jointe rinçage1.xls
 
Re : textbox

Bonjour Claude40 🙂,
Si tu utilises une procédure Change sur le TextBox, tu peux vérifier si il n'y a qu'un seul caractère et rajouter la "," en automatique. Mais il ne faut pas que la valeur soit supérieure à "9,99999", ni que la personne saisisse une deuxième virgule, ou alors, il va falloir ajouter un test pour vérifier que le 3 ème caractère soit un chiffre... Ce qui n'est pas un problème en soi..
Code:
Private Sub Qeaurinçage_Change()
If Len(Qeaurinçage) = 1 Then Qeaurinçage = Qeaurinçage & ","
End Sub
Bonne journée 😎
 
Re : textbox

Re 🙂,
Pour le test, il te suffit de faire un Select Case type
Code:
Select Case Len(Qeaurinçage)
Case 1
Qeaurinçage = Qeaurinçage & ","
Case > 2
Select Case Right(Qeaurinçage,1)
Case 0,1,2,3,4,5,6,7,8,9,
Case Else
Qeaurinçage = Left(Qeaurinçage, Len(Qeaurinçage) - 1)
End Select
End Select
Je pense que je ne me suis pas trompé, je n'ai pas testé...
Si tu veux plus qu'un chiffre avant la virgule, c'est possible si tu es sûr qu'il y aura systématiquement 2 chiffres par exemple, il suffit de décaler le code. Sinon, le plus simple peut-être tout simplement de regarder le dernier caractère saisi, et si c'est un ".", le transformer en ",".
Bonne journée 😎
 
Re : textbox

Re 🙂,
Code:
Private Sub Qeaurinçage_Change()
If Right(Qeaurinçage, 1) = "." Then Qeaurinçage = Left(Qeaurinçage, Len(Qeaurinçage) - 1) & ","
End Sub
à faire pour tous les ListBox dont tu as besoin, sachant bien sûr que ce n'est pas un masque parfait.
Bon WE
PS: Tu oublie souvent de clôturer tes posts, fait un petit effort svp.
 
Dernière édition:
Re : textbox

Bonsoir claude40, JNP, le Forum,

En complément de la solution de notre ami JNP.
Pour forcer l'utilisateur à saisir une virgule au lieu du point, je pense que le mieux est encore d'utiliser l'évènement KeyPress :
Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Qeaurinçage_KeyPress([COLOR=NAVY]ByVal[/COLOR] KeyAscii [COLOR=NAVY]As[/COLOR] MSForms.ReturnInteger)
    [COLOR=NAVY]If[/COLOR] KeyAscii = 46 [COLOR=NAVY]Then[/COLOR] KeyAscii = 44
[COLOR=NAVY]End Sub[/COLOR]
Et finalement, si l'utilisateur est invité à ne rentrer QUE des valeurs numériques :
Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Qeaurinçage_KeyPress([COLOR=NAVY]ByVal[/COLOR] KeyAscii [COLOR=NAVY]As[/COLOR] MSForms.ReturnInteger)
    [COLOR=NAVY]Select Case[/COLOR] KeyAscii
    [COLOR=NAVY]Case[/COLOR] 46                 [COLOR=GREEN]'Change le point en virgule[/COLOR]
        KeyAscii = 44
    [COLOR=NAVY]Case[/COLOR] 44, 48 [COLOR=NAVY]To[/COLOR] 57       [COLOR=GREEN]'Autorise les touches 0 à 9[/COLOR]
    [COLOR=NAVY]Case Else[/COLOR]
        KeyAscii = 0
    [COLOR=NAVY]End Select
End Sub[/COLOR]
Cordialement,
 
Dernière édition:
- 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

  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
293
Réponses
1
Affichages
474
W
Réponses
8
Affichages
400
Réponses
3
Affichages
304
Réponses
6
Affichages
571
Retour