Saisie valeur dans TextBox suivant liste valeurs

koukou40

XLDnaute Occasionnel
Bonjour le Forum !

J'ai dans un userform plusieurs TextBox (10). Une valeur peut-être saisie mais pas quelle n'importe valeur. Ces valeurs sont stockées dans un onglet de mon classeur.
Comment, à l'aide d'un message par exemple, avertir l'utilisateur que le chiffre qu'il vient de saisir n'est pas valide ?

Merci.

koukou40...du 65 !
 

jeanpierre

Nous a quitté
Repose en paix
Re : Saisie valeur dans TextBox suivant liste valeurs

Bonjour, skoobi,

Déjà, pour dire que la saisie n'est pas valable, il faudrait savoir ce que l'on doit mettre dans chaque case.... Ce n'est pas précisé.....

Moi, et simplement, j'indique à côté ou au dessus, par exemple, ce que l'on doit ou ce que l'on peut saisir (plus facile pour gérer les autorisations ou les interdictions) ... Ici, on ne sait pas....

Pas facile ces questions Jeu de piste....

Tu vas sans doute râler après moi.....mais, néanmoins, ma question est simple.... on fait quoi, on met quoi ?

Jean-Pierre
 

Excel_lent

XLDnaute Impliqué
Re : Saisie valeur dans TextBox suivant liste valeurs

Salut Koukou,
Bonjour Skoobi, JeanPierre, sans oublier les autres.

Un bout de code pour te donner une idée :
Code:
Private Sub TextBox1_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean)
   For Each cell In Range("A1:A49")
     If CDbl(TextBox1.Value) = cell Then
       MsgBox "déjà fait !"
       TextBox1 = ""
       Exit Sub
     End If
   Next
   Me.TextBox1.MaxLength = 5
   Me.TextBox1 = Replace(Me.TextBox1, ",", ":")
    End Sub
Si cela te convient, tu trouveras sur ce forum, une façon de traiter tous les cas par une seule boucle.
Tu peux tester aussi la longueur du texte saisi mais pas avec seulement cette ligne :
Code:
Me.TextBox1.MaxLength = 5
.
 

koukou40

XLDnaute Occasionnel
Re : Saisie valeur dans TextBox suivant liste valeurs

Bonjour, skoobi,

Déjà, pour dire que la saisie n'est pas valable, il faudrait savoir ce que l'on doit mettre dans chaque case.... Ce n'est pas précisé.....

Moi, et simplement, j'indique à côté ou au dessus, par exemple, ce que l'on doit ou ce que l'on peut saisir (plus facile pour gérer les autorisations ou les interdictions) ... Ici, on ne sait pas....

Pas facile ces questions Jeu de piste....

Tu vas sans doute râler après moi.....mais, néanmoins, ma question est simple.... on fait quoi, on met quoi ?

Jean-Pierre

Bonjour !

Je joins à nouveau un fichier modifié pour y voir un peu plus clair !

Donc, en fait les nombres que l'on doit saisir dans les TextBox sont listés dans un onglet (3 listes définies => liste1, liste2 et liste3).
A partir du nombre affiché dans le TextBox du bas (ici à l'occurence "4.00"), ce sera la liste1 qui est concernée, si on saisie le chiffre "4.80" (il ne figure pas dans la liste), le bon chiffre peut-être soit "4.25", "4.50", ou "4.75" alors un message d'erreur apparaît pour avertir l'utilisateur que sa saisie n'est pas valable !!!
Si cela peut vous aider !

Merci

koukou40...du 65
 
Dernière édition:

fanfan38

XLDnaute Barbatruc
Re : Saisie valeur dans TextBox suivant liste valeurs

Bonjour,
Pourquoi ne pas mettre des combobox plutôt que des textbox. Dans ce cas tu peux forcer la saisie aux valeurs de la combobox...
Pourquoi 3 listes... faut il si choix x liste 1 dans ce cas textbox n=valeur y et textbox w= valeur g...

A+ François
 

koukou40

XLDnaute Occasionnel
Re : Saisie valeur dans TextBox suivant liste valeurs

Bonjour,
Pourquoi ne pas mettre des combobox plutôt que des textbox. Dans ce cas tu peux forcer la saisie aux valeurs de la combobox...
Pourquoi 3 listes... faut il si choix x liste 1 dans ce cas textbox n=valeur y et textbox w= valeur g...

A+ François

Bonjour fanfan38 !

J'y ai pensé, biensûr, mais j'insiste et je veux que mes saisies s'effectuent dans des TextBox.
Je recherche donc cette fameuse formule qui me permettrait de saisir un nombre qui figure dans une liste.

Je ne sais pas si c'est possible...

A+
koukou40...du 65
 

pierrejean

XLDnaute Barbatruc
Re : Saisie valeur dans TextBox suivant liste valeurs

bonjour a tous

Moi c'est pierrejean

ne pas confondre , jeanpierre pourrait ne pas apprecier

une proposition si j'ai bien compris

Code:
Private Sub TextBox1_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean)
If CDbl(TextBox1) < 0 Or CDbl(TextBox1) > 23.75 Then
 MsgBox ("Valeur hors limites")
 TextBox1 = ""
 Exit Sub
End If
If CDbl(TextBox1) * 100 Mod 25 <> 0 Then
  MsgBox ("Valeur non conforme")
  TextBox1 = ""
  Exit Sub
End If
   Me.TextBox1.MaxLength = 5
   Me.TextBox1 = Replace(Me.TextBox1, ",", ":")
End Sub
 

koukou40

XLDnaute Occasionnel
Re : Saisie valeur dans TextBox suivant liste valeurs

bonjour a tous

Moi c'est pierrejean

ne pas confondre , jeanpierre pourrait ne pas apprecier

une proposition si j'ai bien compris

Code:
Private Sub TextBox1_BeforeUpdate(ByVal cancel As MSForms.ReturnBoolean)
If CDbl(TextBox1) < 0 Or CDbl(TextBox1) > 23.75 Then
 MsgBox ("Valeur hors limites")
 TextBox1 = ""
 Exit Sub
End If
If CDbl(TextBox1) * 100 Mod 25 <> 0 Then
  MsgBox ("Valeur non conforme")
  TextBox1 = ""
  Exit Sub
End If
   Me.TextBox1.MaxLength = 5
   Me.TextBox1 = Replace(Me.TextBox1, ",", ":")
End Sub

Bonjour PierreJean !

Je te remercie, je m'en vais tester ce code.

A+

koukou40...du 65
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 087
Membres
103 116
dernier inscrit
kutobi87