Chiffres ou texte dans une TextBox

degap05

XLDnaute Impliqué
Bonjour à tous,

J'ai une TextBox dans un USF destinée recevoir un nombre, limité à neuf chiffres.
Jusque là pas de problème.
En cas de non disponibilité de ce nombre, serait-il possible que la TextBox puisse recevoir neuf autres caractères, qui devraient toujours être présentés de la même manière.

Quatre lettres majuscules, un point, une lettre majuscule, deux lettres minuscules et un point, soit: XXXX.Xxx. (neuf caractères).

Comment indiquer ces conditions de saisie dans la TextBox ?

Merci.
A+
 

degap05

XLDnaute Impliqué
Re : Chiffres ou texte dans une TextBox

Bonjour degap05,

peut-être (à tester)

Code:
If Textbox1.Text Like "[A-Z][A-Z][A-Z][A-Z].[A-Z][a-z][a-z]." then

Bonjour tototiti2008,

Merci de ta réponse.
Pour le moment je n'ai pas réussi à insérer la partie de code proposée.
Aussi je joins un classeur, avec le code déjà existant.
Si tu as le temps, bien sur.
Merci.
A+
 

Pièces jointes

  • ValeurTextbox.xls
    43.5 KB · Affichages: 111

Habitude

XLDnaute Accro
Re : Chiffres ou texte dans une TextBox

Ceci devrait faire l'affaire

Code:
Private Sub TextBox1_Change()
    TextBox1.Text = Trim(TextBox1.Text) 'refuse les espaces
    If Len(TextBox1.Text) = 4 Then TextBox1.Text = Format(TextBox1.Text, ">") & "."
    If Len(TextBox1.Text) = 6 Then TextBox1.Text = Format(TextBox1.Text, ">")
    If Len(TextBox1.Text) = 8 Then TextBox1.Text = Left(TextBox1.Text, 6) & Format(Right(TextBox1.Text, 2), "<") & "."
    If Len(TextBox1.Text) > 9 Then TextBox1.Text = Left(TextBox1.Text, 9)
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Chiffres ou texte dans une TextBox

Re,
Bonjour Habitude,

En effet, il semble que je n'ai pas bien compris la question.
Moi je testais si la saisie correspondait au masque "AAAA.Aaa.", Habitude te propose d'imposer les majuscules et minuscules où il faut, ainsi que le point à la fin
 

degap05

XLDnaute Impliqué
Re : Chiffres ou texte dans une TextBox

Bonjour Habitude et tototiti2008,

La solution d'Habitude fonctionne, mais du coup si l'on renseigne un nombre, il y a un point en 5ème position et en 9ème position, ces points ne devraient apparaitre que si je tape des lettres.

Merci.
A+
 

tototiti2008

XLDnaute Barbatruc
Re : Chiffres ou texte dans une TextBox

Re,

Peut-être comme ça :

Code:
Private Sub TextBox1_Change()
Application.enableevents = false
if not isnumeric(textbox1.text) then
    TextBox1.Text = replace(TextBox1.Text," ","") 'refuse les espaces
    If Len(TextBox1.Text) = 4 Then TextBox1.Text = Format(TextBox1.Text, ">") & "."
    If Len(TextBox1.Text) = 6 Then TextBox1.Text = Format(TextBox1.Text, ">")
    If Len(TextBox1.Text) = 8 Then TextBox1.Text = Left(TextBox1.Text, 6) & Format(Right(TextBox1.Text, 2), "<") & "."
    If Len(TextBox1.Text) > 9 Then TextBox1.Text = Left(TextBox1.Text, 9)
end if
Application.enableevents = true
End Sub
 

degap05

XLDnaute Impliqué
Re : Chiffres ou texte dans une TextBox

Bonjour,

Je reviens vers vous pour un contrôle de doublons sur la TextBox1 de l'USF.

Je pensais que ce contrôle, qui existe si j'indique un nombre déjà renseigné, fonctionnerait avec des lettres, mais non.

Si vous voulez bien jeter un coup d'œil.

Merci d'avance.

A+
 

Pièces jointes

  • ValeurTextbox1.zip
    17.5 KB · Affichages: 37

Habitude

XLDnaute Accro
Re : Chiffres ou texte dans une TextBox

Écrase ta fonction TextBox1_Exit par ca


Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim cel As Range
Dim valide As Boolean
valide = True
On Error Resume Next
If TextBox1.Value = "" Then Exit Sub

Dim i As Integer
For i = 1 To Feuil4.Range("A65536").End(xlUp).Row
    Set cel = Feuil4.Range("A" & i)
    If UCase(cel.Value) = UCase(TextBox1.Value) Then
        MsgBox "Ce patient existe déjà.", vbOKOnly + vbCritical, "Attention !" 'message
        TextBox1 = Empty
        valide = False
        Exit For
    End If
Next i

If Len(TextBox1.Text) <> 9 Or Not valide Then
    TextBox2.Enabled = False
    TextBox2.Visible = False
    Label2.Visible = False
    Cancel = True
Else
    TextBox2.Enabled = True
    TextBox2.Visible = True
    Label2.Visible = True
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 293
Membres
104 091
dernier inscrit
Abdou4242