Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

  • Initiateur de la discussion Initiateur de la discussion AzoR
  • 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 !

AzoR

XLDnaute Occasionnel
Bonjour,

Dans un soucis d'amélioration de mon programme, voici mon problème :

Dans mon userform j'ai une listbox avec différentes valeurs de temps que j'ai rentré au préalable dans l'initialisation etc, l'utilisateur peut tout de même rentrer une valeur manuellement, ça ok c'est bon, en revanche je voudrais que l'utilisateur ne puisse pas rentrer de valeur à virgule.

En effet il peut écrire 1, 2, 3 etc ... mais je veux que si il essaye de rentrer par exemple "1.5" ou "1,5", mon programme lui renvoie un msgbox afin qu'il rentre une valeur qui soit entière.

Ce sera donc je pense de la forme :

If ComboBox2 *************** Then
MsgBox ("Valeur de période d'acquisition incorrecte." & Chr(10) & Chr(10) & "La période d'acquisition doit être une valeur uniquement entière. Les nombres à virgule sont donc interdits ici.")
End
End If

Mais quelle est cette condition **** ?

Merci d'avance,

Cordialement, AzoR.
 
Re : Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

bonjour Azor,

S'agit-il d'une ListBox ou d'un ComboBox

il suffit de tester si la valeur entrée est un nombre entier

If valeur = Int(valeur) Then ...................... ' C'est OK
If valeur <> Int(valeur) Then .................... ' C'est KO

à+
Philippe
 
Re : Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

Bonjour Azor, Philippe, Gérard, 🙂

Et si les valeurs saisies peuvent être négatives (bien que je ne pense pas que ce soit le cas ici), faire le choix entre la fonction Int ou la fonction Fix qui réagissent différemment dans ce cas
 
Re : Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

Bonjour à tous,

J'ai essayer de faire ceci :
If UserForm1.ComboBox2 <> Int(UserForm1.ComboBox2) Then
MsgBox ("Valeur de période d'acquisition incorrecte." & Chr(10) & Chr(10) & "La période d'acquisition ne doit pas être un chiffre à virgule. ")
End
End If
Or cela ne fonctionne pas, en effet même lorsque ma combobox est à 1 par exemple, le message d'erreur s'affiche.

Comment faire ?

Cordialement, AzoR
 
Re : Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

Ah bah enfaite j'ai réussi avec autre chose :

If UserForm1.ComboBox2 < 1 Or UserForm1.ComboBox2 <> CInt(Fix(UserForm1.ComboBox2)) Then
MsgBox ("Valeur de période d'acquisition incorrecte." & Chr(10) & Chr(10) & "La période d'acquisition ne doit pas être un chiffre à virgule. ")
End
End If

Avec CInt(Fix(*)) et CInt(Int(*)) cela fonctionne.
 
Re : Empêcher d'entrer CERTAINES valeurs dans une listbox manuelement

Re,

Avec UserForm1.ComboBox2 <> Int(UserForm1.ComboBox2)

la partie gauche est un texte, la partie droite est un nombre.

Un texte est toujours plus grand qu'un nombre...

On vous a donné des solutions qui elles fonctionnent.

A+
 
- 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

Retour