[VBA] activer en auto des elements d'une list
Résolu/Fermé
A voir également:
- [VBA] activer en auto des elements d'une list
- Comment activer windows 10 - Guide
- List disk - Guide
- Comment activer chromecast sur tv - Guide
- Créer une liste déroulante excel - Guide
- Activer le pavé tactile - Guide
6 réponses
Bonjour lermite !
Merci beaucoup pour la réponse et désolé de ne pas avoir répondu plus tot.
J'ai enfin un peu de temps pour me remettre sur ce sujet.
J'ai fait d'autres modifications pour optimiser et présenter à mon gout.
Mais j'ai essayé de créer cette fameuse boucle et je t'avoue ... :-/ ca fonctionne pas.
Aurais tu un peu plus à me dire ?
Voila à quoi ressemble maitenant ma macro :
Maintenant mes resultats sont sur la meme ligne et chaque élément est séparé du suivant par un slash
MERCI beaucoup en tous cas !!
Cédric
Merci beaucoup pour la réponse et désolé de ne pas avoir répondu plus tot.
J'ai enfin un peu de temps pour me remettre sur ce sujet.
J'ai fait d'autres modifications pour optimiser et présenter à mon gout.
Mais j'ai essayé de créer cette fameuse boucle et je t'avoue ... :-/ ca fonctionne pas.
Aurais tu un peu plus à me dire ?
Voila à quoi ressemble maitenant ma macro :
Dim f, mondico Sub UserForm_Initialize() Set f = Sheets("bd") Set mondico = CreateObject("Scripting.Dictionary") Me.choix.List = Range(f.[A2], f.[b65000].End(xlUp)).Value Me.choix.MultiSelect = fmMultiSelectMulti End Sub Private Sub Choix_Change() mondico.RemoveAll Me.RésultatListBox1.Clear For k = 0 To Me.choix.ListCount - 1 If Me.choix.Selected(k) = True Then temp = Me.choix.List(k, 0) mondico(temp) = temp End If Next k Me.RésultatListBox1.List = mondico.items End Sub Private Sub cmdValider_Click() [E1] = Join(mondico.items, "/") Unload Me End Sub
Maintenant mes resultats sont sur la meme ligne et chaque élément est séparé du suivant par un slash
MERCI beaucoup en tous cas !!
Cédric
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
29 juin 2010 à 14:07
29 juin 2010 à 14:07
J'aurais difficile de suivre, ça dépend où tu mémorise les sélections précédantes.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 306
Modifié par michel_m le 29/06/2010 à 14:37
Modifié par michel_m le 29/06/2010 à 14:37
erreur: message annulé
excusez moi
:-x
excusez moi
:-x
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 29/06/2010 à 15:16
Modifié par lermite222 le 29/06/2010 à 15:16
En relisant ta réponse je comprend que tu mémorise les sélection dans E1.. séparer par un slach (/)
Alors essaye avec...
Faudra peut-être supprime le exit For (je sais pas tester)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Alors essaye avec...
Dim L As Integer, TB TB = Split(Range("E1"), "/") For k = choix.ListCount - 1 To 0 Step -1 'Si ont enlève des lignes le liscount change. For L = 0 To UBound(TB) If choix.List(k) = TB(L) Then choix.RemoveItem (k) Exit For End If Next L Next k
Faudra peut-être supprime le exit For (je sais pas tester)
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un mois plus tard je m'y replonge !!!
Merci beaucoup lermite222 car grace à toi j'ai trouvé la solution :
MERCI encore et bonne continuation
Merci beaucoup lermite222 car grace à toi j'ai trouvé la solution :
Dim L As Integer, TB TB = Split(Range("E1"), "/") For L = 0 To UBound(TB) UserForm1.RésultatListBox1.addItem TB(L) Next L
MERCI encore et bonne continuation
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 juin 2010 à 18:37
21 juin 2010 à 18:37
Bonjour,
Après ta ligne...
Ce qui, entre parenthèses pourrait être déterminer dans le design.
Il faut repasser en revue toutes les lignes de la liste et faire une comparaison avec ta feuille et quand c'est déja sélectionner mettre Selected à True.
(Avec une boucle comme tu fais pour la sélection)
A+
Après ta ligne...
Me.choix.MultiSelect = fmMultiSelectMulti
Ce qui, entre parenthèses pourrait être déterminer dans le design.
Il faut repasser en revue toutes les lignes de la liste et faire une comparaison avec ta feuille et quand c'est déja sélectionner mettre Selected à True.
(Avec une boucle comme tu fais pour la sélection)
A+