Sélection des élèments d'une zone de liste
Juliaz
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un souci avec une sélection des éléments d'une zone de liste.
J'ai en effet une liste déroulante liée à une zone de liste.
La zone de liste est filtrée suivant le choix d'un élément dans la liste déroulante.
Cette partie marche très bien.
J'ai mis un bouton qui me permet de sélectionner tous les éléments de la zone de liste à chaque fois qu'il sont filtrés.
Le code utilisé est ci-dessous . Il marche dans certains cas et pas dans d'autres.
1) le cas où le code marche:
Lorsque le choix d'un élément de la liste déroulante donne dans la zone de liste des éléments avec toujours plus de lignes la sélection marche très bien :
Je peux l'illustrer par ces deux captures d'écran:
Pour ce cas , la sélection marche très bien pour tous les choix.

par contre , la sélection ne marche pas lorsqu'on n'a moins de lignes: dans la capture suivante , elle ne marche que pour le choix 3 mais pas pour les choix 1 et 2 car moins de lignes que la toute première (choix3 ) Sélectionné.

Merci de m'éclairer!!
Bonne journéé
J'ai un souci avec une sélection des éléments d'une zone de liste.
J'ai en effet une liste déroulante liée à une zone de liste.
La zone de liste est filtrée suivant le choix d'un élément dans la liste déroulante.
Cette partie marche très bien.
J'ai mis un bouton qui me permet de sélectionner tous les éléments de la zone de liste à chaque fois qu'il sont filtrés.
Le code utilisé est ci-dessous . Il marche dans certains cas et pas dans d'autres.
Private Sub Commande362_Click() Dim i As Long For i = 0 To Me.CSEtab.ListCount - 1 Me.CSEtab.Selected(i) = True Next i End Sub
1) le cas où le code marche:
Lorsque le choix d'un élément de la liste déroulante donne dans la zone de liste des éléments avec toujours plus de lignes la sélection marche très bien :
Je peux l'illustrer par ces deux captures d'écran:
Pour ce cas , la sélection marche très bien pour tous les choix.

par contre , la sélection ne marche pas lorsqu'on n'a moins de lignes: dans la capture suivante , elle ne marche que pour le choix 3 mais pas pour les choix 1 et 2 car moins de lignes que la toute première (choix3 ) Sélectionné.

Merci de m'éclairer!!
Bonne journéé
A voir également:
- Sélection des élèments d'une zone de liste
- Liste déroulante excel - Guide
- Alternative zone telechargement - Accueil - Outils
- Liste déroulante en cascade - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Liste code ascii - Guide
7 réponses
Merci yg_be, la désélection avant le requery était la solution.
Tout marche très bien!!
Merci encore d'avoir pris de ton temps pour résoudre mon problème.
Bonne journée !!
Tout marche très bien!!
Merci encore d'avoir pris de ton temps pour résoudre mon problème.
Bonne journée !!
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
1 584
super! peux-tu marquer le sujet comme résolu?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
CSEtab est bien le nom de ta zone de liste?
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
si je comprends bien, cela fonctionne jusqu'au moment où tu réduis le nombre d'éléments dans la zone de liste, c'est bien cela?
je me demande comment tu fais le filtrage de ta zone de liste.
CSEtab est bien le nom de ta zone de liste?
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
si je comprends bien, cela fonctionne jusqu'au moment où tu réduis le nombre d'éléments dans la zone de liste, c'est bien cela?
je me demande comment tu fais le filtrage de ta zone de liste.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
je pense avoir le même problème. quand je réduis le nombre d'éléments dans la listbox via un requery, je dois cliquer deux fois sur le bouton qui refait le select: il ne se passe rien la première fois.
cela semble bien se comporter si je fais deux fois la boucle select.
cela semble bien se comporter si je fais deux fois la boucle select.
Bonjour yg_be,
CSEtab est bien le nom de ma zone de liste.
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
je remarque que c'est le premier choix effectué dans la liste déroulante qui détermine la sélection des éléments de la zone de liste.
Le premier choix opéré dans la liste déroulante marche toujours quelque soit le nombre d'éléments de la zone de liste.
C'est à partir du deuxième choix que j'ai un problème:Lorsque ce deuxième choix donne dans la zone de liste plus d'éléments que le premier choix , la sélection marche toujours.Par contre si ce deuxième donne moins d'éléments dans la zone de liste que le premier , rien n'est sélection dans ma zone de liste.
je me demande comment tu fais le filtrage de ta zone de liste.
J'ai une table tab1 avec deux champs: un champ A qui correspond avec les éléments de la liste déroulante et un autre B avec les éléments de la zone de liste.
Un élément A peut avoir plusieurs éléments B comme suit:
champ A champ B
a papa
a maman
b coucou
b lola
c pipo
J'ai alors construit une requête sélection avec tab1 où j'affiche les deux champs (champ A et champ B) de la table et je mets en critère du champ A [Formulaires]![nom formulaire]![champA liste déroulante] l'élèment sélection dans la liste déroulante.Celà permet ainsi par un [champB].Requery sur la liste déroulante d'avoir la zone de liste renseignée: c'est le principe des listes liées.
Merci encore pour ta contribution
CSEtab est bien le nom de ma zone de liste.
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
je remarque que c'est le premier choix effectué dans la liste déroulante qui détermine la sélection des éléments de la zone de liste.
Le premier choix opéré dans la liste déroulante marche toujours quelque soit le nombre d'éléments de la zone de liste.
C'est à partir du deuxième choix que j'ai un problème:Lorsque ce deuxième choix donne dans la zone de liste plus d'éléments que le premier choix , la sélection marche toujours.Par contre si ce deuxième donne moins d'éléments dans la zone de liste que le premier , rien n'est sélection dans ma zone de liste.
je me demande comment tu fais le filtrage de ta zone de liste.
J'ai une table tab1 avec deux champs: un champ A qui correspond avec les éléments de la liste déroulante et un autre B avec les éléments de la zone de liste.
Un élément A peut avoir plusieurs éléments B comme suit:
champ A champ B
a papa
a maman
b coucou
b lola
c pipo
J'ai alors construit une requête sélection avec tab1 où j'affiche les deux champs (champ A et champ B) de la table et je mets en critère du champ A [Formulaires]![nom formulaire]![champA liste déroulante] l'élèment sélection dans la liste déroulante.Celà permet ainsi par un [champB].Requery sur la liste déroulante d'avoir la zone de liste renseignée: c'est le principe des listes liées.
Merci encore pour ta contribution
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci yg_be,
C'est exactement ce que j'ai, je dois cliquer deux fois sur le bouton pour qu'il refasse la sélection.
Pour exécuter deux fois la boucle select, il suffit juste de mettre le code deux fois ?
Merci encore
C'est exactement ce que j'ai, je dois cliquer deux fois sur le bouton pour qu'il refasse la sélection.
Pour exécuter deux fois la boucle select, il suffit juste de mettre le code deux fois ?
Merci encore
Cà semble fonctionner quand je mets deux fois le code.
Merci
Merci
J'ai fait plusieurs tests mais c'es bizarre:
cela ne fonctionne pas toujours.
Je peux avoir votre exemple si possible.
Je suis désolée , je ne peux partager le mien car ce sont des données confidentielles .
Merci
cela ne fonctionne pas toujours.
Je peux avoir votre exemple si possible.
Je suis désolée , je ne peux partager le mien car ce sont des données confidentielles .
Merci
j'ai fait un exemple tout simple, avec une liste basée sur une table.
j'ai un bouton qui fait un simple requery.
un bouton qui fait la sélection.
un bouton qui fait la déselection.
quand j'ajoute des éléments dans la table, la sélection fonctionne bien après le requery.
quand il y a moins d'éléments dans ma table que dans la liste, la sélection ne fonctionne pas du premier coup après le requery.
mais en faisant d'abord la déselection, ou en faisant une double boucle dans la sélection, cela marche dans mon cas simple.
as-tu essayé de faire la déselection avant le requery?
j'ai un bouton qui fait un simple requery.
un bouton qui fait la sélection.
Private Sub Command4_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i End Sub
un bouton qui fait la déselection.
Private Sub Command6_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = False Next i End Sub
quand j'ajoute des éléments dans la table, la sélection fonctionne bien après le requery.
quand il y a moins d'éléments dans ma table que dans la liste, la sélection ne fonctionne pas du premier coup après le requery.
mais en faisant d'abord la déselection, ou en faisant une double boucle dans la sélection, cela marche dans mon cas simple.
Private Sub Command4_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i End Sub
as-tu essayé de faire la déselection avant le requery?