Saisie valeur dans TextBox suivant liste valeurs

  • Initiateur de la discussion Initiateur de la discussion koukou40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 !
 
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
 
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
.
 
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:
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
472
W
Retour