XL 2016 Problème VBA - format TextBox

marcfriez

XLDnaute Nouveau
Bonsoir à tous,

J'ai crée un programme excel avec UserForm, mais je rencontre un problème dans mon formulaire. J'ai 3 types de textbox:

-Dans la première j'ajoute des données numériques (montant en euros). J'ai envie de modifier le format de ma textbox pour faire en sorte que je peux saisir juste des nombres décimaux avec la virgule, puis à la fin faire apparaître le symbole euros €. Si je saisie un autre symbole ou une lettre un message d'erreur doit apparaître.

-Dans la deuxième j'ajoute une date du type dd/mm/yyyy. J'ai envie de modifier le format de ma textbox pour faire en sorte que je peux saisir juste des chiffres avec des slashes ("/"). Si je saisie un autre symbole ou une lettre un message d'erreur doit apparaître.

- Dans la dernière j'ajoute un pourcentage ("00.00%). J'ai envie de modifier le format de ma textbox pour faire en sorte que je peux saisir juste des chiffres avec la virgule, puis à la fin faire apparaître le "%". Si je saisie un autre symbole ou une lettre un message d'erreur doit apparaître.

Je vous remercie d'avance :)))
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, marcfriez

marcfriez
Je rencontre un nouveau membre du forum qui a un problème avec à un formulaire.
J'ai trois types de réponses possibles
Dans la première: Bienvenue sur le forum
Dans la deuxième: ajoute un fichier Exemple
Dans la dernière : j'ai envie de penser que c'est l'empressement qui t'a fait poster sans joindre un tit fichier ;)

PS: le tit fichier, c'est juste pour ne pas perdre de temps à recréer un classeur avec userform et tutti quanti, alors que celui-ci existe déjà sur ton disque dur. ;)
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir marcfriez (il semblerait que ton fichier brille par son absence..Lol), bonsoir Staple

Petit fichier rapidement réalisé grâce à notre ami patricktoulon (que je salue au passage ;) ). Avec ce codage, il ne peut y avoir d'erreur.
Bonne soirée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Textboxs formatés par masques de saisie .xlsm
    24.2 KB · Affichages: 18

Staple1600

XLDnaute Barbatruc
Re

=>marcfriez
En guise d'illustration, un petit exemple (pour le point 1))
(à tester sur un userform avec un TextBox et un CommandButton)
Je te laisse ensuite faire l'adaptation sur ton fichier
VB:
Private Sub CommandButton1_Click()
MsgBox Val(Replace(TextBox1, ",", ".")) * 2
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Seulement nombres et virgule => nombre décimal donc
Select Case KeyAscii
Case 44
If InStr(1, TextBox1, ",") > 0 Then KeyAscii = 0
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub

Private Sub UserForm_Initialize()
TextBox1 = "5,5"
End Sub
 

marcfriez

XLDnaute Nouveau
Salut Eric C et Staple1600


Merci pour vos réponses, je vais essayer de l'appliquer. Euh concernant mon post sur l'autre forum, malheureusement le code du monsieur ne marche pas. Je suis débutant en vba et depuis 1 semaine j'essaie de résoudre ce problème de textbox. Veuillez m'excuser si je n'ai pas signalé le multipostage.

Cordialement
 

Eric C

XLDnaute Barbatruc
Re



@ Staple - Et maintenant ça doit donner quoi le code ????
78323.gif
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Eric C
Je parlais des balises COLOR qu'on pouvait lire dans le VBA avant que tu ne l'édites ;)

marcfriez
Désormais, tu es paré pour tes prochaines questions ;)
(de préférence avec un fichier joint, et un petit préambule si tu as posé ta question à plusieurs endroits
histoire de user nos neurones si la question est déjà résolue ailleurs ;)
 

patricktoulon

XLDnaute Barbatruc
bonjour le fils
je l'ai déjà montré récemment me semble til

formater un textbox en contraignant et interception des touches clavier

VB:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With TextBox1
        X = Replace(.Value, " €", "")
        Select Case KeyCode
        Case 96 To 105
            If X <> "" Then If Len(Replace(X, Val(Int(X)), "")) >= 3 Then KeyCode = 0: Exit Sub
            X = X & Chr(KeyCode + IIf(KeyCode < 96, 32, -48))
        Case 110, 188: If Not X Like "*,*" Then X = X & ","
        Case 8: X = Left(X, Len(X) - IIf(X <> "", 1, 0))
        Case Else: KeyCode = 0
        End Select
        .Value = X
        If .Value <> "" Then .Value = .Value & " €"
        .SelStart = Len(X)
    End With
    KeyCode = 0
End Sub
pour le "%" tu remplace le" €" par" %"
 
Dernière édition:

Discussions similaires

Réponses
15
Affichages
494
Réponses
9
Affichages
154

Statistiques des forums

Discussions
312 181
Messages
2 085 997
Membres
103 083
dernier inscrit
SALAHBEN