OVH Cloud OVH Cloud

controle sur userform

3 réponses
Avatar
pauline
Bonjour à tous,

Dans mon userform, j'ai un textbox1 qui peut contenir des lettres ou des
chiffres. Lors du click sur le commandbutton VALIDER, j'aimerais que si ce
textbox1 contient des chiffres supérieur à 0 cela déclenche un controle sur
le textbox2 et textbox3 qui doivent donc contenir aussi des chiffres
supérieur à 0. Si textbox1 contient des lettres donc rien, c'est normal que
textbox2 et textbox3 ne soient pas rempli. Je sais faire des contrôle
simples mais là c'est un peu plus complexe pour une débutante comme moi.

Voilà ce que je sais faire: (c'est un peu juste et en plus j'ai le message
même si il y'a des lettres dans le textbox1)
If Txtbox1.Value > 0 Then
response = MsgBox("Attention il faut mettre du port pour cet article",
vbYesNo, "ATTENTION")
If response <> vbYes Then Exit Sub
End If

Merci d'avance pour un coup de main

Pauline

3 réponses

Avatar
docm
Bonjour.
`
Il vaudrait mieux vérifier avec la fonction CDBL():
If CDbl(Txtbox1.Value) > 0 Then

Une cellule possède une propriété VALUE (la valeur réelle) et une propriété
TEXT (la valeur affichée).

Pour un contrôle Textbox, les propriétés TEXT et VALUE sont identiques, la
valeur affichée étant toujours la valeur réelle.

"pauline" a écrit dans le message news:

Bonjour à tous,

Dans mon userform, j'ai un textbox1 qui peut contenir des lettres ou des
chiffres. Lors du click sur le commandbutton VALIDER, j'aimerais que si ce
textbox1 contient des chiffres supérieur à 0 cela déclenche un controle
sur

le textbox2 et textbox3 qui doivent donc contenir aussi des chiffres
supérieur à 0. Si textbox1 contient des lettres donc rien, c'est normal
que

textbox2 et textbox3 ne soient pas rempli. Je sais faire des contrôle
simples mais là c'est un peu plus complexe pour une débutante comme moi.

Voilà ce que je sais faire: (c'est un peu juste et en plus j'ai le message
même si il y'a des lettres dans le textbox1)
If Txtbox1.Value > 0 Then
response = MsgBox("Attention il faut mettre du port pour cet article",
vbYesNo, "ATTENTION")
If response <> vbYes Then Exit Sub
End If

Merci d'avance pour un coup de main

Pauline




Avatar
anonymousA
bonjour,

fais plutot une conversion de ce qu'il y a dans le textbox par
cdbl(textbox1.value) et controle si cette conversion ramène un terme
numérique. Il faut prendre la précaution de mettre un gestionnaire
d'erreur avant car la conversion d'un valeur non numérique renvoie une
erreur.

On Error Resume Next
tampon = CDbl(Me.TextBox1.Value)
If Err.Number <> 0 Then
err.clear
Else
MsgBox "numérique"
End If

Ici tu remplaces le Msgbox par des controles que tu veux faire sur les
textbox2 et 3 et voilà. Il te faudra aussi certainement tester sir
textbox1.value est >0 à moins qu'il puisse exister du port négatif pour
un article.

A+


Bonjour à tous,

Dans mon userform, j'ai un textbox1 qui peut contenir des lettres ou des
chiffres. Lors du click sur le commandbutton VALIDER, j'aimerais que si ce
textbox1 contient des chiffres supérieur à 0 cela déclenche un controle sur
le textbox2 et textbox3 qui doivent donc contenir aussi des chiffres
supérieur à 0. Si textbox1 contient des lettres donc rien, c'est normal que
textbox2 et textbox3 ne soient pas rempli. Je sais faire des contrôle
simples mais là c'est un peu plus complexe pour une débutante comme moi.

Voilà ce que je sais faire: (c'est un peu juste et en plus j'ai le message
même si il y'a des lettres dans le textbox1)
If Txtbox1.Value > 0 Then
response = MsgBox("Attention il faut mettre du port pour cet article",
vbYesNo, "ATTENTION")
If response <> vbYes Then Exit Sub
End If

Merci d'avance pour un coup de main

Pauline




Avatar
docm
Voici une solution plus complète:
If IsNumeric(TxtBox1.Text) Then
If TxtBox1.Text > 0 Then
ok1 = True
If IsNumeric(TxtBox2.Text) Then
If TxtBox2.Text > 0 Then
ok2 = True
End If
End If
If IsNumeric(TxtBox3.Text) Then
If TxtBox3.Text > 0 Then
ok3 = True
End If
End If
End If
End If
If ok1 = True Then
If ok2 = False Or ok3 = False Then
MsgBox "Attention"
End If
End If

"pauline" a écrit dans le message news:

Bonjour à tous,

Dans mon userform, j'ai un textbox1 qui peut contenir des lettres ou des
chiffres. Lors du click sur le commandbutton VALIDER, j'aimerais que si ce
textbox1 contient des chiffres supérieur à 0 cela déclenche un controle
sur

le textbox2 et textbox3 qui doivent donc contenir aussi des chiffres
supérieur à 0. Si textbox1 contient des lettres donc rien, c'est normal
que

textbox2 et textbox3 ne soient pas rempli. Je sais faire des contrôle
simples mais là c'est un peu plus complexe pour une débutante comme moi.

Voilà ce que je sais faire: (c'est un peu juste et en plus j'ai le message
même si il y'a des lettres dans le textbox1)
If Txtbox1.Value > 0 Then
response = MsgBox("Attention il faut mettre du port pour cet article",
vbYesNo, "ATTENTION")
If response <> vbYes Then Exit Sub
End If

Merci d'avance pour un coup de main

Pauline