Valeur retournée par Une ListBox non sélectionnée dans un UserForm

@

@+Thierry

Guest
Bonsoir,

Je butte sur un truc assez simple, mais quelque chose m'échappe...

Donc Un UserForm... Une ListBox, des donnée récupérée dans la ListBox, tout çà impec...
Un autre ComboBox qui est allimentée en fonction de ce que l'on a sélectionné dans la ListBox au dessus... çà roule...

Il y a aussi des TextBox, et tout le tsoin-tsoin... Aucun souci. Tout marche bien...

Mais voilà, comme c'est pour cette fameuse démo que je suis en train d'essayer de terminer ce week end... enfin avant Noël... Je voudrai faire le truc qui soit bien fait et bien bouclé...

Mon problème vient de la rigueur que je m'impose dans les tests de vérification des données à la validation.

Je veux que lorsque l'on click sur le CommandButton "Validation" un test soit fait sur chacun des Controls... Les TextBox, aucun souci avec :
If TextBox1 = "" then MsgBox "TextBox Vide"... etc etc

Mais avec une ListBox c'est pas la même salade... Tant que la ListBox n'a pas été au moins cliquée une fois elle retourne la valeur "Null"... Qui n'est donc ni : "" ou 0 ou encore "Empty"...

Je me suis dis... Ok no problem :
If ListBox1 = Null then MsgBox "ListBox Vide"...

Et ben non, il ne se passe rien... Comme si la ligne au dessus n'existait pas... La procédure arrive aux lignes suivantes et donc n'est pas fiable...

Bien sur le system "D" serait de faire en sorte que le Bouton "Validation" soit "Hide" à l'initialisation et que l'action Click sur ListBox1 celà permette à ce button d'être "Show"... C'est un moyen... Mais je voudrais faire quelque chose de plus carré...

Il doit bien y avoir un moyen de retourner la valeur d'un ListBox non cliquée (donc Null, le débugeur me le dit) et de faire une condition sur cette valeur...

Merci
Bonne Soirée... (Sur M6 il y a une nouvelle série dans une petite demie heure de Stephen King)

@+Thierry

PS 0.01 € à celui qui me dit comment faire avant hier !!!
:°)))
 
@

@+Thierry

Guest
Humm une piste...

For i = 0 To ListBox1.ListCount-1
If ListBox1.Selected(i) = True Then
MsgBox ListBox1.List(i,2)
End If
Next i

Du grand FS...

Bon vé mater ce film "Les Langoliers" (oups c'est pas une série, vu ce que je regarde la TV, j'avais pas capté...Juste entendu Stephen King)

@+Thierry
 
V

Vériland

Guest
Bonsoir Thierry,

Bon là j'me lance dans une théorie qui est la mienne...

If ListBox1 = 0 then MsgBox "ListBox Vide"...

Actuellement c'est ce qui ne marche pas...au lieu d'avoir une valeur nulle, si tu essayais la même chose mais avec une valeur positive ?

Ca donnerait par exemple :

If ListBox1 = 1 then MsgBox "ListBox Vide"...

Ceci suppose que tant qu'il n'y a pas eu de d'entrée dans la listbox, la condition reste 1...mais dès qu'il y en à une la condition prend une autre valeur...exemple 2...

je ne sais pas du tout si c'est possible...mais bon...comme tu nous aide déjà beaucoup voilà ce que je pense à cet instant...

A+ Vériland
 
@

@+Thierry

Guest
Merci Vériland

Mais j'ai déjà essayé...

Non ni 1 ni Zéro, Ni "", Ni Empty, Ni Null....

C'est pas mal ""Les Langoliers"" eux aussi les passagers de l'avion ont tous pris une valeur "Null" !!

@+Après le film
Thierry
 
@

@+Thierry

Guest
Vite fait pendant la Pub !!!

...pour ta gouverne Vériland, (après les 500 déclarations de variable que tu avais en devoir après les cours !! lol)

"Null" et "Empty" sont des Valeurs en VBA et ceci EN PLUS de 0 et de ""...

Si on compare au français "Rien n'est Rien" et" Vide est Vide" ainsi que... "Nul est Nul"... ce qui fait Trois... en VBA il y a Quatre nuances bien distinctes

VouMfré 500 lignes de +

:°)

@+Thierry
 
T

Ti

Guest
non Thierry, dans ton Userform_Initialize, tu mets la ligne
ListboxXX.listindex = 0 (ou la valeur par déaut que tu veux). Comme ça, la valeur retournée ne sera pas nulle, tu auras toujours un élément sélectionné par défaut
 
V

Vériland

Guest
Bah, pour moi l'ordinateur n'a que deux logiques : oui / non, vrai / faux; 0 / 1

Tiens je vais parodier JM Bigard qui disais :

Un ordinateur c'est très bête...jamais il se dit...peut être...j'sais pas...je pense...

ben non!...puisque c'est toujours oui ou non...0 ou 1

l'homme lui c'est l'inverse...il à d'autres logiques...si par exemple au bout d'une route il n'y a que deux possibilités...soit aller à gauche ou à droite...l'homme lui...ne se pose pas la question...bien souvent il va tout droit et traverse le champ...

ça l'ordinateur y sait pas l'faire...c'est très bête un ordi...

bon ben j'vais commencer mes 500 lignes... ;-)
 

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG