Bonjour,
J'ai un souci sur un fichier dont je joins une version allégée pour mon problème.
J'ai un formulaire avec 8 listbox (fmMultiselectsingle). Si je selectionne 1 item sur 2 des listbox, je souhaite simplement échanger ces deux items.
J'arrive bien à vider les listbox et à enregistrer les nouvelles valeurs dans les tableaux de variable, mais seule la premiere listbox cliquée et remplie, la seconde reste vide.
Merci d'avance pour votre aide et désolé pour le code qui suit que je n'arrive pas à indenter dans ce message
Voici le code:
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 Private Sub EchangeEntreList() Dim Ctl As Control, X1 As String, X2 As String, A As String, B As String X = 0 X1 = "" X2 = "" With UserForm7 For Each Ctl In .Controls If TypeName(Ctl) = "ListBox" Then For i = 0 To Ctl.ListCount - 1 If Ctl.Selected(i) Then X = X + 1 Select Case X Case Is = 1 If X1 = "" Then X1 = Right(Ctl.Name, 1) End If Case Is = 2 If X2 = "" Then X2 = Right(Ctl.Name, 1) End If End Select Next i End If Next Ctl End With If X = 2 Then With UserForm7 Dim text1 As String, text2 As String t1 = .Controls("ListBox" & X1).List 't1 tableau premiere listbox text1 = .Controls("ListBox" & X1).ListIndex 'text1 selection premiere listbox t2 = .Controls("ListBox" & X2).List 't2 tableau seconde listbox text2 = .Controls("ListBox" & X2).ListIndex 'text2 selection seconde listbox For i = 0 To 4 A = t1(text1, i) 'txt premiere listbox B = t2(text2, i) 'txt seconde listbox t1(text1, i) = B 'remplacement txt premiere listbox par txt seconde dans tableau t2(text2, i) = A 'remplacement txt seconde listbox par txt premiere dans tableau Next i .Controls("ListBox" & X1).Clear .Controls("ListBox" & X1).List = t1 .Controls("ListBox" & X2).Clear .Controls("ListBox" & X2).List = t2 End With End If End Sub
Partager