Bonjour,
Je voudrais extraire la ligne sélectionnée d'une listBox.
ne marche pas.Code:x = listbox1.value
J'ai essayé des tas de codes, mais je n'y arrive pas.
Quel code employer ?
Merci si vous pouvez me dépanner.
Version imprimable
Bonjour,
Je voudrais extraire la ligne sélectionnée d'une listBox.
ne marche pas.Code:x = listbox1.value
J'ai essayé des tas de codes, mais je n'y arrive pas.
Quel code employer ?
Merci si vous pouvez me dépanner.
Bonjour,
Déjà , il faudrait savoir si ta listbox est dans une userform ou dans une sheet ? Comment est-elle alimentée ?
Sinon, qqch comme ceci devrait fonctionner :
Code:
1
2
3 For i = 1 To UserForm1.ListBox1.ListCount MsgBox UserForm1.ListBox1.List(i - 1) Next i
Bjr,
pourSur l'évènement double clic de la listbox en donnant pour l'exemple à la cellule B10 la valeur sélectionnée dans la listboxCode:x = listbox1.value
@+Code:
1
2
3
4 Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) x = Me.ListBox1.Value [B10] = x End Sub
Merci de me répondre.
Le classeur très simple, pour essai, a 3 feuilles A,B et C.
La listBox est dans la feuille "A" qui possède aussi le CommandButton1.
Voici le code dans la feuille "A" :
J'ai fait un programme assez important, mais devant mes difficultés avec listBox, j'ai écrit ce petit truc, plus facile pour mes essais.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Option Explicit Dim xListe As Variant Dim x As Variant Private Sub ListBox1_Click() Dim i As Integer Sheets("A").Select ListBox1.Clear xListe = Array("A", "B", "C") For i = 0 To 2 ListBox1.AddItem Range("A1").Offset(i, 0).Value Next End Sub Private Sub CommandButton1_Click() x = Sheets("A").ListBox1.SelectedItem.Value MsgBox (x) End Sub
Merci pour l'aide.
Re, j'ai légèrement modifié ton code :J'ai remarqué que sur l'évènement click de la listbox sa coince alors qu'avec l'évènement GotFocus non. :calim2: ??Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Option Explicit Dim xListe As Variant Dim x As Variant Private Sub CommandButton1_Click() Dim x As String x = Me.ListBox1.Value MsgBox x End Sub Private Sub ListBox1_GotFocus() Dim i As Integer Me.ListBox1.Clear xListe = Array("A", "B", "C") For i = 0 To 2 Me.ListBox1.AddItem (Range("A1").Offset(i, 0).Value) Next Me.ListBox1.ListIndex = 0 End Sub
Bref comme ceci ça fonctionne
Merci rvtoulon, ça marche.
Je vais pouvoir continuer après 2 jours de panne !
Salut
Je n'ai peut être pas compris le fond du problème mais, pourquoi ne pas utiliser la propriété ListFillRange de ta zone de liste, pour la trouver tu cliques droit sur ta zone de liste, puis propriété. Tu met Feuil1!B2:B10 comme valeur a la propriété ListFillRange. Le gros avantage c'est que si tu changes une valeur dans ta feuille, le changement sera pris en compte dans ta liste.
Tu peux également mettre une étiquette comme valeur de ListFillRange, regarde les réponse que j'ai fait récemment j'en parle pour une combobox, ca fonctionne pareil
A++
Qwaz
Re-Bonjour,
J'obtiens bien mon "x".
Or je voudrais appeler une procédure en utilisant une variable qui représente son nom et apparemment ça semble impossible ?
Qui peut me dire si c'est possible.
Merci.
Salut
C'est claire comme du jus de chique...
Peut etre souhaites tu faire un truc comme ca?
Mais vu que ta demande est pas très claire... je suppose que la réponse est proportionnelle.Code:
1
2
3
4
5
6
7
8
9
10
11 Sub maprocedure( Mavaleur as string) range("A1") = mavaleur .... End sub Private Sub CommandButton1_Click() Dim x as string x = Sheets("A").ListBox1.SelectedItem.Value maprocedure(x) End Sub
Il serait bien d'expliquer clairement ce que tu veux faire dans son intégralité et pas juste des petits bouts de rien, met toi a notre place, si on a pas tous les éléments, comment veux tu qu'on formule une réponse qui tienne la route.
Encore une fois, on prend du temps pour répondre, alors prenez 5 minutes pour formuler des questions complètes, merci.
a++
Qwaz
Ps: pourquoi avoir mis ton poste en délestage, ça va pas attirer les lecteurs.
C'est maprocedure que je voudrais remplacer par une variable pour l'appeler.
Je n'ai pas fait de délestage. En quoi cela consiste-t-il ?
J'ai trouvé ma solution:
Si ma variable xMacro = "Macro1" alors ...etcCode:
1
2
3
4
5
6
7 Private Sub CommandButton1_Click() x = Me.ListBox1.Value If x = "Macro1" Then Macro1 End If End Sub
En utilisant directement x pour appeler la procédure, ça ne marchait pas.
Je crois que je pourrais aussi utiliser les index.
Merci pour les idées que tu m'as données.
[Edit]Tu as mis un autre post entre temps, tant mieux si tu si trouvé ta solution, ++[/Edit]
??
Tu persistes a a réduire tes postes au strict minimum et c'est toujours incompréhensible désolé.
Remplacer une procédure par une variable?Citation:
C'est maprocedure que je voudrais remplacer par une variable pour l'appeler.
appeler une variable??
Pour ma part, je te demanderais une dernière fois d'expliquer clairement ce que tu souhaites faire, parce que ton post part a la dérive, des gens te fournissent du code, mais vu que le sujet est flou, tu es obliger de re-préciser, puis on redonne du code, puis tu re-précises... ça n'en fini pas.
A++
Qwaz
Ps: Pour le délestage, c'est pas grave, c'est un modérateur qui a dut le mettre, ne t'en inquiète pas.
Voici:
Je voulais mettre dans une listBox une suite de procédures (procedure_1, procedure_2 etc )
En choisissant une ligne de la liste, mettre son contenu dans une variable et utiliser cette variable comme appel de la procédure, ce qui ne marche pas.
J'ai alors fait:
alors que j'avais essayé :Code:
1
2
3
4
5
6
7
8 if mavariable = "procedure1" then procedure1 end if if mavariable = "procedure2" then procedure2 end if etc
pour appeler la procédure, ce qui est plus court, mais ne marche pas.Code:
1
2
3
4 maprocedure = (la ligne de la listBox) puis: mavariable
Salut
Et bien comme quoi si tu avais raconté tout ça dés le début, clairement...
On t'aurait dis de t'orienter vers Application.Run
En l'utilisant comme ca
A++Code:
1
2
3
4
5 Private Sub CommandButton1_Click() dim x as string x = Me.ListBox1.Value application.run x End Sub
Qwaz
Merci.
ça marche bien.
Petit bonus
Il est preferable de prevenir le cas ou le nom de la macro n'existe pas, pour eviter d'avoir un plantage avec retour au code
Je n'ai pas testé le code, mais ce doit être ça.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub CommandButton1_Click() dim x as string x = ListBox1.Value On error goto err_Run application.run x On error goto 0 [...]Suite du code exit sub err_Run: msgbox "La procédure " & ListBox1.Value & " n'existe pas ou le nombres de paramètres transmis est incorrect." 'resume 'activer se code pour reprendre a la ligne suivant application.run x End Sub
Bonne soirée
++
qwaz