ListBox - sélection en cascade

re,

un peu de bricolage ..., maintenant avec un double-clicque au lieu d'un simple clicque (et un multiselect)

@BsAlv,

je vois que tu maîtrises 'ListIndex' aussi bien que le 'Dico' !
Quelle soupe!

Salut les chercheurs,

le système de BsAlv fonctionne très bien mais ce montage, bricolage comme le décrit BsAlv, m'a inspiré une autre manière de travailler, finalement à l'avantage de l'utilisateur.

Je dissocie le Click et le Double-Click en 2 procédures.
- le clic simple cherche déjà les données du stade suivant (cadre jaune pâle) et donc, la sélection en surbrillance ne gêne pas.

image

- le double-clic fixe le choix dans le cadre bleu (Requête) et du coup... le WAIT de 1 sec. passe crème !

Bon, dans ce cas, c'est très jouable, non?

A+

5thierryapp.xlsm (25.02 Ko)

Bonjour à tous ,

Je n'aime pas proposerune piste que je n'ai pas essayé de suivre moi-même. Voici donc ma petite version basée sur les 3 listbox. On utilise l'API "Sleep" pour faire une tempo courte.

Pouvez-vous réaliser quelques petits tests et me dire si le défaut (sélection indésirable) se produit chez vous ?

Si oui, avez-vous essayé d'augmenter la tempo ?

D'avance, merci

Salut Mafraise,

génial, ce SLEEP que j'avais complètement oublié!
Même sans lui, tes ListBox n'ont pas ce défaut qui nous tient éveillés!

Avec ma seule ListBox, un Tempo de 150 suffit à le gommer : tout bon!

Tant qu'à être éveillé à cette heure, je l'ai amélioré encore.
Si une sous-section est unique, elle est affichée automatiquement et la boucle passe au niveau suivant.

Je crois que je peux enfin, grâce à vous tous, présenter quelque chose de valable au cousin!
Merci à tous!

A+

9thierryapp.xlsm (31.09 Ko)

Super @curulis ! perso j'aime beaucoup cette interface en cascade. A voir si ça permettra, en plus, de corriger une erreur de saisie plus facilement (re-clic dans la liste précédente).

J'avais aussi pensé à sleep mais je m'étais dit, bêtement, à quoi bon utiliser sleep pour attendre une fraction de seconde, si quand je fais Timevalue("00:00:01") / 5.0 ça ne marche pas ? Et bien je m'étais trompé ahaha bien vu mafraise.

Salut tout le monde,

@Saboh : oui, j'y ai pensé aussi! Il fallait bien y arriver après avoir réglé (merci Mafraise ) le "petit" défaut des ListBox.

Mon habitude, en terme de programmation, est d'associer le clic-droit à une annulation ou suppression de quelque chose.
Il suffira d'un clic-droit dans le cadre 'Requête' sur le niveau concerné pour recommencer cette étape.
Devrait pas être trop compliqué à terminer ça...

Bonne journée, les as!

re,

je ne vois/comprends pas ce soucis des "sélections indésirables" donc l'endroit où ce "sleep" est utile, mais un simple "DoEvents", ne fait-il pas la même chose ?

J'ai aussi fait quelques corrections (à voir si cela vous plait)

6thierryapp-2.xlsm (29.09 Ko)

Bonjour et merci à tous pour vos essais ,

curulis a écrit :

Même sans lui, tes ListBox n'ont pas ce défaut qui nous tient éveillés!

Quand on est plongé dans un problème, on suit une idée (bonne ou mauvaise) sans s'arrêter de temps en temps pour faire le point. Donc sans la tempo, tu dis que ça fonctionne. A vrai dire, j'ai tellement fait d'essai de code que je n'ai même pas envisagé ce cas. Tant mieux.

curulis a écrit :
Je crois que je peux enfin, grâce à vous tous, présenter quelque chose de valable au cousin!

Avec le temps que tu as passé dessus, j'espère qu'il te seras reconnaissant. Fais de ton classeur son cadeau de noël (ça de mange pas de pain et ça ne va grever ton budget) .

noelsapin
saboh12617 a écrit :
si quand je fais Timevalue("00:00:01") / 5.0 ça ne marche pas ?

En fait, c'est en cherchant comment descendre sous une tempo inférieure à une seconde (Wait est limité à une précision de la seconde et ne descend pas en dessous) que je suis passé à Sleep. Il y a malgré tout un défaut (que j'ai ignominieusement tu) qui est que l'API Sleep n'est pas utilisable sur les MAC.

BsAlv a écrit :

je ne vois/comprends pas ce soucis des "sélections indésirables" donc l'endroit où ce "sleep" est utile, mais un simple "DoEvents", ne fait-il pas la même chose ?

J'ai aussi fait quelques corrections (à voir si cela vous plait)

Les sélections indésirables sont présentes dans le classeur initial de curulis57. C'est ça qu'on a essayé de supprimer. Il semblerait qu'un DoEvents ne suffise pas. j'ai testé et ça ne l'a pas fait.

J'ai un peu de mal à comprendre ta présentation, ça marcherait de gauche à droite ?

re,

moi, j'utilise ceci pour temporiser, mais le bon choix ??? Je pensais que "Sleep" bloque tout (excel est mort) mais ce boucle permet encore à Excel de se mettre à jour.

Sub test()

     t1 = Timer                              'maintenant
     t2 = Timer + 0.15                       'maintenant + 150 millisecondes

     Do
          DoEvents
     Loop While t1 <= Timer And Timer < t2   'boucle pendant 150 millisecondes

     MsgBox "t1 était : " & t1 & vbLf & "t2 était : " & t2 & vbLf & vbLf & "maintenant c'est : " & Timer

End Sub

Re BsAlv ,

BsAlv a écrit :

Sub test()
t1 = Timer: t2 = Timer + 0.15 
Do
 DoEvents
Loop While t1 <= Timer And Timer < t2
MsgBox "t1 était : " & t1 & vbLf & "t2 était : " & t2 & vbLf & vbLf & "maintenant c'est : " & Timer
End Sub

Pour les tempos inférieures à la seconde, ça le fait aussi très bienet comme tu dis on continue le traitement (si c'est qu'on veut).

Salut les accros au feuilleton,

@BsAlv, le "défaut" y est toujours. Je n'ai d'ailleurs pas vu la boucle que tu préconisais (DO...LOOP).
Bref, j'ai ceci, après 1 dbl-clic au stade 1 avec ma macro...

image

...contre ceci sans SLEEP avec ta macro.

image

@Saboh, j'ai apporté l'option de correction. Un clic-droit dans le cadre bleu 'Requête' sur le stade "fautif" recule le processus.

Bon, on a fait le tour, je pense!
Honneur au WAIT de Saboh qui a inspiré le SLEEP de Mafraise qui a mis tout le monde d'accord... en tout cas, moi!
Je tâcherai de ne pas oublier cela!

A+

5thierryapp.xlsm (33.91 Ko)

Super curulis, bon weekend!

Pour le sleep j'avais vu ça une fois pour un autre problème vraiment bizarre où DoEvents ne faisait pas son job...

Rechercher des sujets similaires à "listbox selection cascade"