Bonjour
SVP, comment ajout listbox dans userform ayant déjà 02 listbox
programme adapter pour mes besoin (source) internet
merci d'avance pour votre aide
Bonjour
SVP, comment ajout listbox dans userform ayant déjà 02 listbox
programme adapter pour mes besoin (source) internet
merci d'avance pour votre aide
Bonjour,
Un exemple à adapter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Set lb = Me.Controls.Add("Forms.ListBox.1") lb.Left = Me.ListBox2.Left + Me.ListBox2.Width + 10 lb.Top = Me.ListBox2.Top
Bonjour
merci pour votre réponse
comme je suis débutant, je n'arrive pas à adapter sur l'exemple
en fait, dans l'exemple adapté il existe des données d'une colonne reliées à 1 listbox. ma question comment relier une autre colonne à une autre listbox
dans l'exemple répond, exactement, à mes besoins
merci d'avance pour votre aide
J'ai besoin de plus de précisions. Où faut-il mettre la listbox ? A partir de quelle plage de cellules faut-il la remplir ?
Bonsoir
merci pour votre réponse
c'est vrai que je m'exprime mal désolé.
a vrai dire j'aurai besoin d'afficher
une colonne sur un listbox1 (colonne e)
une colonne sur listbox2 (colonne f)
une colonne sur listbox3 (colonne g)
voila ce que je souhaiterais avoir
ci-joint un exemple que j'ai adapter pour mes besoins. (source : internet)
J'ai modifié la macro :
comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private Sub UserForm_Initialize()
et j'ai ajouté les macros de remplissage des listboxes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub UserForm_Initialize() Dim i As Integer Dim Plage As Range Dim cell As Range Set Plage = Sheets("Interface").Range("e8:e" & Sheets("Interface").Range("e65534").End(xlUp).Row) ReDim Tab1(1 To Plage.Count + 1, 1 To 2) i = 0 For Each cell In Plage i = i + 1 With cell Tab1(i, 1) = .Text Tab1(i, 2) = .Offset(0, 1).Text End With Next TriLB1 Doublon LabelNB.Caption = ListBox1.ListCount - 1 'remplissage ListBox2 Set Plage = Plage.Offset(, 1) TriLB2 Plage 'remplissage ListBox3 Set Plage = Plage.Offset(, 1) TriLB3 Plage End Sub
Tu trouveras le classeur modifié en annexe. Note que la macro d'ouverture plante sur la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Sub TriLB2(Plage As Range) Dim Dico As Object, c As Range Dim Coll As New Collection 'Elimination des doublons Set Dico = CreateObject("Scripting.Dictionary") For Each c In Plage If Not Dico.exists(c.Value) Then Dico.Add c.Value, c.Value Coll.Add c.Value End If Next c For i = 1 To Coll.Count - 1 For j = i + 1 To Coll.Count If Coll(i) > Coll(j) Then Swap1 = Coll(i) Swap2 = Coll(j) Coll.Add Swap1, before:=j Coll.Add Swap2, before:=i Coll.Remove i + 1 Coll.Remove j + 1 End If Next j Next i For Each Item In Coll Me.ListBox2.AddItem Item Next Item End Sub Sub TriLB3(Plage As Range) Dim Dico As Object, c As Range Dim Coll As New Collection 'Elimination des doublons Set Dico = CreateObject("Scripting.Dictionary") For Each c In Plage If Not Dico.exists(c.Value) Then Dico.Add c.Value, c.Value Coll.Add c.Value End If Next c For i = 1 To Coll.Count - 1 For j = i + 1 To Coll.Count If Coll(i) > Coll(j) Then Swap1 = Coll(i) Swap2 = Coll(j) Coll.Add Swap1, before:=j Coll.Add Swap2, before:=i Coll.Remove i + 1 Coll.Remove j + 1 End If Next j Next i For Each Item In Coll Me.ListBox3.AddItem Item Next Item End Sub
parce que la forme est introuvable. J'ai mis très peu de commentaires. N'hésite pas à poser des questions si tu ne comprends pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Worksheets("interface").Shapes("rectangle 4").Visible = True
Partager