OVH Cloud OVH Cloud

Vérification des données saisies

7 réponses
Avatar
Furion
Bonsoir à tous !

Je bloque depuis un petit moment sur ce problème, merci à ceux qui pourront
me mettre sur la voie.

Je voudrais vérifier les données saisies dans un textbox. Ces données sont
une référence de produit qui peut avoir deux "formats" :
- Soit une suite de 13 chiffres
- Soit "GR" + 11 chiffres

Je veux vérifier que la référence saisie mais je n'arrive pas à formuler mes
conditions en vba :
- If "textbox1 = tout en numérique" then .....
- If left(textbox1;2)="GR" And "right(textbox1;11) = tout en numérique" then
......

Qqun pourrait il m'aider à formuler ça en Vba ?

Merci d'avance !

7 réponses

Avatar
Pierre Fauconnier
Bonsoir

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If (IsNumeric(TextBox1) And Len(TextBox1) = 13) Or _
(Left(TextBox1, 2) = "GR" And IsNumeric(Right(TextBox1, 11)) And _
Len(TextBox1) = 13) Then _
MsgBox "Saisie correcte" Else _
MsgBox "Saisie incorrecte"

End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Furion" a écrit dans le message de news:

Bonsoir à tous !

Je bloque depuis un petit moment sur ce problème, merci à ceux qui
pourront
me mettre sur la voie.

Je voudrais vérifier les données saisies dans un textbox. Ces données sont
une référence de produit qui peut avoir deux "formats" :
- Soit une suite de 13 chiffres
- Soit "GR" + 11 chiffres

Je veux vérifier que la référence saisie mais je n'arrive pas à formuler
mes
conditions en vba :
- If "textbox1 = tout en numérique" then .....
- If left(textbox1;2)="GR" And "right(textbox1;11) = tout en numérique"
then
......

Qqun pourrait il m'aider à formuler ça en Vba ?

Merci d'avance !


Avatar
Hervé
Salut,
Sur Exit de ton TextBox :

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With TextBox1
If IsNumeric(.Text) Then
If Len(.Text) = 13 Then
MsgBox "Tout en numérique avec 13 chiffres :o))"
Else
MsgBox "Tout en numérique mais avec " & Len(.Text) & " chiffres
:o(("
End If
Else
If Left(.Text, 2) = "GR" And IsNumeric(Right(.Text, 11)) Then
MsgBox "Alphanumérique :o))"
Else
MsgBox "Pas bon du tout :o(("
End If
End If
End With
End Sub

Hervé.

"Furion" a écrit dans le message news:

Bonsoir à tous !

Je bloque depuis un petit moment sur ce problème, merci à ceux qui
pourront

me mettre sur la voie.

Je voudrais vérifier les données saisies dans un textbox. Ces données sont
une référence de produit qui peut avoir deux "formats" :
- Soit une suite de 13 chiffres
- Soit "GR" + 11 chiffres

Je veux vérifier que la référence saisie mais je n'arrive pas à formuler
mes

conditions en vba :
- If "textbox1 = tout en numérique" then .....
- If left(textbox1;2)="GR" And "right(textbox1;11) = tout en numérique"
then

......

Qqun pourrait il m'aider à formuler ça en Vba ?

Merci d'avance !


Avatar
Furion
Merci beaucoup Monsieur Fauconnier !
C'est exactement ce qu'il me fallait. Testé et approuvé.
Merci pour le temps que tu m'as fait gagné


Bonsoir

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If (IsNumeric(TextBox1) And Len(TextBox1) = 13) Or _
(Left(TextBox1, 2) = "GR" And IsNumeric(Right(TextBox1, 11)) And _
Len(TextBox1) = 13) Then _
MsgBox "Saisie correcte" Else _
MsgBox "Saisie incorrecte"

End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Furion" a écrit dans le message de news:

Bonsoir à tous !

Je bloque depuis un petit moment sur ce problème, merci à ceux qui
pourront
me mettre sur la voie.

Je voudrais vérifier les données saisies dans un textbox. Ces données sont
une référence de produit qui peut avoir deux "formats" :
- Soit une suite de 13 chiffres
- Soit "GR" + 11 chiffres

Je veux vérifier que la référence saisie mais je n'arrive pas à formuler
mes
conditions en vba :
- If "textbox1 = tout en numérique" then .....
- If left(textbox1;2)="GR" And "right(textbox1;11) = tout en numérique"
then
......

Qqun pourrait il m'aider à formuler ça en Vba ?

Merci d'avance !







Avatar
Furion
Puis je me permettre de poser une autre question ?

Je possède une base excel avec les références de certains produits et
d'autre critères.

Si la référence saisie est connue dans cette base, je veux compléter
automatiquement des autres textbox.

Quelle est l'équivalent de la fonction recherchev en vba et qu'elle est sa
syntaxe ? Merci d'avance et j'espère que j'abuse pas trop
Avatar
Furion
Merci beaucoup Hervé !
il semblerait que ça marche aussi bien que le code de Pierre.

Merci pour le temps économisé ! @+
Avatar
Pierre Fauconnier
Personnellement, je n'utilise pas l'équivalent VBA de RechercheV, qui est
Vlookup...
J'utilise un truc du genre
Plage.find what:=ValeurCherchee, lookin:=xlvalues, lookat:=xlwhole
Il faut regarder la syntaxe pour les options éventuelles de lookin, lookat
et autres paramètres.

Dans l'exemple donné, lookin:=xlvalues signifie que tu cherches dans les
valeurs de celules, mais tu peux utiliser xlformulas, ...
lookat:=xlwhole recherche pour la cellule entière et lookat:=xlpart
recherche dans une partie. Il faut remplacer Plage par une référence à une
plage de données
...

La valeur renvoyée est une variable objet de type range
Dim Cellule as range
set Cellule = Plage.find...
If Cellule is nothing then
msgbox "Recherche infructueuse"
else
msgbox "La cellule trouvée est " & cellule.address
endif

Par exemple...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Furion" a écrit dans le message de news:

Puis je me permettre de poser une autre question ?

Je possède une base excel avec les références de certains produits et
d'autre critères.

Si la référence saisie est connue dans cette base, je veux compléter
automatiquement des autres textbox.

Quelle est l'équivalent de la fonction recherchev en vba et qu'elle est sa
syntaxe ? Merci d'avance et j'espère que j'abuse pas trop


Avatar
Hervé
Bonsoir Furion,
Elle est identique à celle de Pierre, à la différence que j'indique d'où
viens l'erreur et donc, elle est un peu plus longue mais parfois ça peut
être utile à l'utilisateur de savoir d'où vient l'erreur. ;o)

Hervé.

"Furion" a écrit dans le message news:

Merci beaucoup Hervé !
il semblerait que ça marche aussi bien que le code de Pierre.

Merci pour le temps économisé ! @+