Microsoft 365 gestion des listbox

Soumie

XLDnaute Nouveau
Bonjour,
Je travaille sur un userform dans lequel j'ai inséré une liste déroulante et une listbox à choix multiples qui dépend de ma listebox (en cascade). en effet ma listboxe apparait uniquement quand ma liste déroulante est sélectionnée. Jusque la tout fonctionne. Ma question est comment faire disparaitre ma listbox une fois que mes sélections d'items dans ma listbox est terminée?
J'aimerais savoir aussi comment, à partir d'une base de donnée sur une feuille Excel , afficher les choix dans ma listbox à choix multiples dépendamment de ma sélection dans ma liste déroulante ?

Merci de bien vouloir m'aider!
 

Pièces jointes

  • Capture d’écran 2023-09-26 082555.jpg
    Capture d’écran 2023-09-26 082555.jpg
    24.2 KB · Affichages: 14

Soumie

XLDnaute Nouveau
Bonjour Soumie, Scraper,
Pour le 1er point ListBox a un paramètre Visible, donc vous devriez pouvoir faire quelque chose du genre :
VB:
Userform1.ListBox1.Visible=False  ( ou True pour être visible )
Pour le 2eme point, sorry, pas compris. Vous auriez un fichier test ?
Ma listbox est à visible = false au début. elle apparait seulement si je sélectionne la liste déroulante sauf que je voudrais qu'elle disparaisse une fois que j'ai fini mes sélections. j'ai joint le fichier. Petite précision : je parle de la liste déroulante: SélectionMatières1 et la listbox1en cascade. Merci!
 

Pièces jointes

  • Horaire de surveillance (3).xlsm
    147.7 KB · Affichages: 9

sylvanu

XLDnaute Barbatruc
Supporter XLD
Désolé, votre PJ génère plein d'erreur comme :
' Sub Dupliquer() qui est en commentaires, j'ai rectifié,
Dim m As Integer: qui génère une erreur de compil, je l'ai supprimé.
Apperçu.Range(1).Value = SélectionMatières1.Value quand on a fait une sélection du nombre de groupes puis la matière.
Je me suis arrêté là.
je voudrais qu'elle disparaisse une fois que j'ai fini mes sélections.
Dans la dernière macro de la dernière sélection, NomListBox_Change par ex, vous terminez par
Listboxxx.Visible=false.
 

Soumie

XLDnaute Nouveau
Désolé, votre PJ génère plein d'erreur comme :
' Sub Dupliquer() qui est en commentaires, j'ai rectifié,
Dim m As Integer: qui génère une erreur de compil, je l'ai supprimé.
Apperçu.Range(1).Value = SélectionMatières1.Value quand on a fait une sélection du nombre de groupes puis la matière.
Je me suis arrêté là.

Dans la dernière macro de la dernière sélection, NomListBox_Change par ex, vous terminez par
Listboxxx.Visible=false.
Oui, je sais qu'à ce stade de mon travail, le code génère plusieurs erreurs que je vais corriger au fur et à mesure. Je vous l'ai envoyé pour que vous puissiez voir de quoi je parle seulement. Alors je reviens à ma question : comment faire pour fermer (faire disparaitre) ma listbox1 après sélection ? Autrement dit: je fais une sélection dans ma SélectionMatière1, ma listbox s'affiche ensuite , je sélectionne mes choix ( jusqu'à là le code le fait bien ) et elle disparait.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui, je sais qu'à ce stade de mon travail, le code génère plusieurs erreurs que je vais corriger au fur et à mesure.
Sauf qu'un contributeur voit votre fichier de l'extérieur et ne peut pas faire de test car il y a trop d'erreurs qui l'en empêche. Désolé.
Comme je vous l'ai dit :
Dans la dernière macro de la dernière sélection, NomListBox_Change par ex, vous terminez par
Listboxxx.Visible=false.
Donc à la fin de la dernière listbox.change, faites vos .visible=False.
 

Soumie

XLDnaute Nouveau
Sauf qu'un contributeur voit votre fichier de l'extérieur et ne peut pas faire de test car il y a trop d'erreurs qui l'en empêche. Désolé.
Comme je vous l'ai dit :

Donc à la fin de la dernière listbox.change, faites vos .visible=False.
Si dans ma listbox.change, je fais visible= false, le problème et que la listbox (à choix multiples) s'enlève dès que je fais la sélection du premier item. Je n'ai pas le temps de tout sélectionner!!
 

Soumie

XLDnaute Nouveau
Comme le nombre de choix multiples est arbitraire, au gré de l'utilisateur, il vous faudra un élément déclencheur sinon vous n'y arriverez jamais.
Par ex 3 choix obligatoires, ou un bouton OK ....
Effectivement, je pensais plutôt à si la souris n'est plus dessus (la listbox) faisant référence aux options de déclanchement d'évènement. Ex : change, click, MouseMove. Mais que je ne savais pas comment le coder. Je ne sais pas si vous voyez ce que je veux dire!
 

Soumie

XLDnaute Nouveau
Bonjour, j'ai deux listbox 1 et 2 (toutes deux à choix multiples ) avec les mêmes items à sélectionner . J'aimerais écrire un code pour faire en sorte qu'un item sélectionné dans la listbox1 ne soit plus disponible(qu'on ne puisse pas cliquer dessus) à la sélection dans la listbox2 sans l'effacer de sorte que si je change ma sélection dans la listbox1, ils soit disponible à nouveau dans la listbox2. Pouvez-vous m'aider svp?
 

Soumie

XLDnaute Nouveau
Bonjour,
Les listes contiennent le même nombre d'items, mais elles ne sont pas fixes, elles changent à chaque année. Je joints le fichier un plus récent que celui du post précédent. Il y a déjà un code d'écrit dans la listbox2 qui permet d'effacer l'item de lalistbox3, mais celui-ci ne fonctionne pas non plus.
Les listes sont chargées à partir de la feuille Excel (données variables).Merci pour votre aide.
 

Pièces jointes

  • Horaire de surveillance (3).xlsm
    172.2 KB · Affichages: 6

Soumie

XLDnaute Nouveau
En fait, l'idée est d'avertir ou empêcher l'utilisateur de sélectionner le même employé deux fois. j'ai essayé de faire un Msgbox (cet employé a déjà été sélectionné), mais ça ne fonctionne pas non plus. La difficulté est au niveau de la listbox puisque je l'ai testé sur deux listes déroulante (voir Nbresec2 ) le MsgBox apparait .
 

Statistiques des forums

Discussions
313 198
Messages
2 096 141
Membres
106 505
dernier inscrit
ngomez