Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Format dans userform

5 réponses
Avatar
lauxeti
Bonjour,

Je souhaiterais dans un userform lors de la saisie par l'utilisateur
controler le format de cette saisie
ex

=E0 saisir AA111A comment verifier cette saisie
aaa11 >> pas bon
A1111A idem

je ne peux pas mettre un controle liste car il s'agit de creation de
nouveau article
Peut on "formater " la zone de saisie ?

Merci de vos reponses
Le Lauxeti

5 réponses

Avatar
LSteph
Bonjour,

Si je peux me permettre de reposer dans l'ordre qui me semble
(La réponse préférable au point 1 peut rendre inutile le point 2)

1*
> je ne peux pas mettre un controle liste car il s'agit de creation de
> nouveau article

AA111A ressemble plus à une réf qu'un article donc cette réf
existe-t-elle déjà ou c'est toi qui la conçoit ? Il vaudrait mieux
la générer directement pour éviter que des doublons soient saisis.
Ou sinon avoir une nomenclature pré éxistante et un combobox pour y choisir.

2*
> controler le format de cette saisie

La règle pour savoir si c'est "bon" ou "pas bon"
est elle 2lettres3chiffreset1lettre ..?


@+

--
lSteph

lauxeti a écrit :
Bonjour,

Je souhaiterais dans un userform lors de la saisie par l'utilisateur
controler le format de cette saisie
ex

à saisir AA111A comment verifier cette saisie
aaa11 >> pas bon
A1111A idem

je ne peux pas mettre un controle liste car il s'agit de creation de
nouveau article
Peut on "formater " la zone de saisie ?

Merci de vos reponses
Le Lauxeti


Avatar
LSteph
..outre ta réponse au point 1 voici un exemple pour le point 2
avec userform1 contenant textbox1 et commandbutton1 qui vérifie avant
d'executer

Private Sub CommandButton1_Click()
Dim tst As Boolean, i As Byte, myCar As String
tst = False

If Len(TextBox1) <> 6 Then tst = True

For i = 1 To 6
myCar = Asc(Mid(UCase(TextBox1), i, 1))

Select Case i

Case 1, 2, 6
If myCar < 65 Or myCar > 90 _
Then tst = True: Exit For

Case Else
If myCar < 48 Or myCar > 57 _
Then tst = True: Exit For

End Select

Next
If tst Then TextBox1.SetFocus: MsgBox _
"saisie invalide": Exit Sub
'sinon on peut continuer
MsgBox "Saisiecorrecte: " & TextBox1
End Sub

'lSteph

LSteph a écrit :
Bonjour,

Si je peux me permettre de reposer dans l'ordre qui me semble
(La réponse préférable au point 1 peut rendre inutile le point 2)

1*
> je ne peux pas mettre un controle liste car il s'agit de creation de
> nouveau article

AA111A ressemble plus à une réf qu'un article donc cette réf
existe-t-elle déjà ou c'est toi qui la conçoit ? Il vaudrait mieux
la générer directement pour éviter que des doublons soient saisis.
Ou sinon avoir une nomenclature pré éxistante et un combobox pour y
choisir.

2*
> controler le format de cette saisie

La règle pour savoir si c'est "bon" ou "pas bon"
est elle 2lettres3chiffreset1lettre ..?


@+

--
lSteph

lauxeti a écrit :
Bonjour,

Je souhaiterais dans un userform lors de la saisie par l'utilisateur
controler le format de cette saisie
ex

à saisir AA111A comment verifier cette saisie
aaa11 >> pas bon
A1111A idem

je ne peux pas mettre un controle liste car il s'agit de creation de
nouveau article
Peut on "formater " la zone de saisie ?

Merci de vos reponses
Le Lauxeti




Avatar
LSteph
..j'ai omis un cas de figure, préférablement ceci pour le point 2:


Private Sub CommandButton1_Click()
Dim tst As Boolean, i As Byte, myCar As String
tst = False

If Len(TextBox1) <> 6 Then
tst = True
Else

For i = 1 To 6
myCar = Asc(Mid(UCase(TextBox1), i, 1))

Select Case i

Case 1, 2, 6
If myCar < 65 Or myCar > 90 _
Then tst = True: Exit For

Case Else
If myCar < 48 Or myCar > 57 _
Then tst = True: Exit For

End Select

Next
End If
If tst Then TextBox1.SetFocus: MsgBox _
"saisie invalide": Exit Sub
'sinon on peut continuer
MsgBox "Saisiecorrecte: " & TextBox1
End Sub

'lSteph
LSteph a écrit :
Bonjour,

Si je peux me permettre de reposer dans l'ordre qui me semble
(La réponse préférable au point 1 peut rendre inutile le point 2)

1*
> je ne peux pas mettre un controle liste car il s'agit de creation de
> nouveau article

AA111A ressemble plus à une réf qu'un article donc cette réf
existe-t-elle déjà ou c'est toi qui la conçoit ? Il vaudrait mieux
la générer directement pour éviter que des doublons soient saisis.
Ou sinon avoir une nomenclature pré éxistante et un combobox pour y
choisir.

2*
> controler le format de cette saisie

La règle pour savoir si c'est "bon" ou "pas bon"
est elle 2lettres3chiffreset1lettre ..?


@+

--
lSteph

lauxeti a écrit :
Bonjour,

Je souhaiterais dans un userform lors de la saisie par l'utilisateur
controler le format de cette saisie
ex

à saisir AA111A comment verifier cette saisie
aaa11 >> pas bon
A1111A idem

je ne peux pas mettre un controle liste car il s'agit de creation de
nouveau article
Peut on "formater " la zone de saisie ?

Merci de vos reponses
Le Lauxeti




Avatar
lauxeti
On 15 mar, 12:21, LSteph wrote:
..j'ai omis un cas de figure, préférablement ceci pour le point 2:

Private Sub CommandButton1_Click()
Dim tst As Boolean, i As Byte, myCar As String
tst = False

If Len(TextBox1) <> 6 Then
tst = True
Else

     For i = 1 To 6
     myCar = Asc(Mid(UCase(TextBox1), i, 1))

         Select Case i

         Case 1, 2, 6
         If myCar < 65 Or myCar > 90 _
         Then tst = True: Exit For

         Case Else
         If myCar < 48 Or myCar > 57 _
         Then tst = True: Exit For

         End Select

     Next
End If
If tst Then TextBox1.SetFocus: MsgBox _
"saisie invalide": Exit Sub
'sinon on peut continuer
MsgBox "Saisiecorrecte: " & TextBox1
End Sub

'lSteph
LSteph a écrit :



> Bonjour,

> Si je peux me permettre de reposer dans l'ordre qui me semble
> (La réponse préférable au  point 1 peut rendre inutile le point 2)

> 1*
>  > je ne peux pas mettre un controle liste car il s'agit de creation de
>  > nouveau article

> AA111A ressemble plus à une réf qu'un article donc cette réf
> existe-t-elle déjà ou c'est toi qui la conçoit ? Il vaudrait mieu x
> la générer directement pour éviter que des doublons soient saisis .
> Ou sinon avoir une nomenclature pré éxistante et un combobox pour y
> choisir.

> 2*
>  > controler  le format de cette saisie

> La règle pour savoir si c'est "bon" ou "pas bon"
> est elle 2lettres3chiffreset1lettre ..?

> @+

> --
> lSteph

> lauxeti a écrit :
>> Bonjour,

>> Je souhaiterais dans un userform lors de la saisie par l'utilisateur
>> controler  le format de cette saisie
>> ex

>> à saisir AA111A   comment verifier cette saisie
>> aaa11 >> pas bon
>> A1111A idem

>> je ne peux pas mettre un controle liste car il s'agit de creation de
>> nouveau article
>> Peut on "formater " la zone de saisie ?

>> Merci de vos reponses
>> Le Lauxeti- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonsoir à tous,

En effet, je me suis peut etre mal exprimé
Il s'agit de creer un nouvel article (ou reference) devant avoir un
format specifique
l'exemple donné A1111A est un exemple parmi d'autres (75000DES par
ex)
je croyais simplement que l'on pouvait definir "un masque de saisie"
pour chaque textbox

Par contre, j'ai testé la reponse : ça marche tres bien mais pouvez
vous (m') expliquer comme fonctionne le CASE

Merci pour votre patience et vos reponses
Le Lauxeti
l
Avatar
gmlsteph
tst est fixé à faux
i sert dindice pour chaque caractères
donc après s'être assuré que la chaine soit complète
sinon tst serait devenu vrai
on utilise ce
select case i
c'est un si à tiroirs en quelque sort traduisons par
Selon le cas de i

Case 1, 2, 6
sil'on a affaire au chr 1, 2, 6
onvérifie que le code en majuscule de ce nème chr est bien compris
dans
les numéros correspondat A...à Z
s'il est en dehors tst devient vrai

Case else
dans un autre cas
on s'assure que c'est un chiffre
s'il est en dehors tst devient vrai

End select

fin du select

si tst est devenu vrai on se refocalise sur le textbox en prévenant
l'utilisateur
que sa saisie n'est pas correcte

sinon on continue


Note que ici on a qu'un ou deux case et ca aurait déjà fait un peu
trop de If
tu imagines donc l'utilité quand les cas sont plus nombreux.


@+

lSteph

On 15 mar, 18:42, lauxeti wrote:
On 15 mar, 12:21, LSteph wrote:





> ..j'ai omis un cas de figure, préférablement ceci pour le point 2:

> Private Sub CommandButton1_Click()
> Dim tst As Boolean, i As Byte, myCar As String
> tst = False

> If Len(TextBox1) <> 6 Then
> tst = True
> Else

>      For i = 1 To 6
>      myCar = Asc(Mid(UCase(TextBox1), i, 1))

>          Select Case i

>          Case 1, 2, 6
>          If myCar < 65 Or myCar > 90 _
>          Then tst = True: Exit For

>          Case Else
>          If myCar < 48 Or myCar > 57 _
>          Then tst = True: Exit For

>          End Select

>      Next
> End If
> If tst Then TextBox1.SetFocus: MsgBox _
> "saisie invalide": Exit Sub
> 'sinon on peut continuer
> MsgBox "Saisiecorrecte: " & TextBox1
> End Sub

> 'lSteph
> LSteph a écrit :

> > Bonjour,

> > Si je peux me permettre de reposer dans l'ordre qui me semble
> > (La réponse préférable au  point 1 peut rendre inutile le poi nt 2)

> > 1*
> >  > je ne peux pas mettre un controle liste car il s'agit de creatio n de
> >  > nouveau article

> > AA111A ressemble plus à une réf qu'un article donc cette réf
> > existe-t-elle déjà ou c'est toi qui la conçoit ? Il vaudrait mi eux
> > la générer directement pour éviter que des doublons soient sais is.
> > Ou sinon avoir une nomenclature pré éxistante et un combobox pour y
> > choisir.

> > 2*
> >  > controler  le format de cette saisie

> > La règle pour savoir si c'est "bon" ou "pas bon"
> > est elle 2lettres3chiffreset1lettre ..?

> > @+

> > --
> > lSteph

> > lauxeti a écrit :
> >> Bonjour,

> >> Je souhaiterais dans un userform lors de la saisie par l'utilisateur
> >> controler  le format de cette saisie
> >> ex

> >> à saisir AA111A   comment verifier cette saisie
> >> aaa11 >> pas bon
> >> A1111A idem

> >> je ne peux pas mettre un controle liste car il s'agit de creation de
> >> nouveau article
> >> Peut on "formater " la zone de saisie ?

> >> Merci de vos reponses
> >> Le Lauxeti- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -

Bonsoir à tous,

En effet, je me suis peut etre mal exprimé
Il s'agit de creer un nouvel article (ou reference) devant avoir un
format specifique
l'exemple donné A1111A est un exemple parmi d'autres (75000DES par
ex)
je croyais simplement que l'on pouvait definir "un masque de saisie"
pour chaque textbox

Par contre, j'ai testé la reponse : ça marche tres bien mais pouvez
vous (m') expliquer comme fonctionne le CASE

Merci pour votre patience et vos reponses
Le Lauxeti
l- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -