Probleme de code sur listbox multiselection
Bonjour,
Totalement débutante en VBA excel, je me retrouve bloquée depuis plusieurs jours sur un code de Jacques Boisgontier que j’aimerai adapter (et que je remercie au passage).
Voici les problèmes que je rencontre :
1) Je n’arrive pas à faire en sorte que ma listbox de destination prenne la totalité des colonnes de ma listbox de départ (j’aimerai avoir 6 colonnes).
2) Quand ma listbox de destination enregistre bien mes données de mes trois texbox, le bouton de commande retour ne m’affiche plus que deux colonnes dans la listbox de départ.
Je vous joins le code pour que cela soit plus clair.
Merci
Code:
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 55 56 57 58 59 60 61 62 63 64 65 66
| Dim f
Private Sub UserForm_Initialize()
Set f = Sheets("BDD")
Me.Source.List = f.Range("A2:H" & f.[A65000].End(xlUp).Row).Value
Me.Source.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub B_enlève_Click()
If Me.Dest.ListCount > 0 And Me.Dest.ListIndex <> -1 Then
Me.Source.AddItem Me.Dest
pos = Me.Source.ListCount - 1
Me.Source.List(pos, 1) = Me.Dest.Column(1)
Me.Dest.RemoveItem Me.Dest.ListIndex
End If
End Sub
Private Sub b_prend_Click()
If Me.Source.ListIndex <> -1 And Me.Source.ListCount > 0 Then
For i = 0 To Me.Source.ListCount - 1
If Me.Source.Selected(i) = True Then
Me.Dest.AddItem Me.Source.List(i)
pos = Me.Dest.ListCount - 1
Me.Dest.List(pos, 1) = Me.Source.List(i, 1)
End If
Next i
For i = Me.Source.ListCount - 1 To 0 Step -1
If Me.Source.Selected(i) = True Then Me.Source.RemoveItem i
Next i
End If
End Sub
Private Sub B_transfert_Click()
Sheets("recup").[A2].Resize(Me.Dest.ListCount, 2) = Me.Dest.List
End Sub
Private Sub B_ajout_Click()
Me.Dest.AddItem
pos = Me.Dest.ListCount - 1
Me.Dest.List(pos, 0) = Me.TextBox1
Me.Dest.List(pos, 1) = Me.TextBox2
Me.Dest.List(pos, 2) = Me.TextBox3
End Sub
Private Sub B_monte_Click()
If Me.Dest.ListIndex <> -1 And Me.Dest.ListIndex > 0 Then
element = Me.Dest.List(Dest.ListIndex, 0)
element2 = Me.Dest.List(Dest.ListIndex, 1)
element3 = Me.Dest.List(Dest.ListIndex, 2)
p = Me.Dest.ListIndex
Me.Dest.AddItem element, p - 1
Me.Dest.List(p - 1, 2) = element3
Me.Dest.RemoveItem Me.Dest.ListIndex
Me.Dest.ListIndex = p - 1
End If
End Sub
Private Sub B_descend_Click()
If Me.Dest.ListIndex <> -1 And Me.Dest.ListIndex < Me.Dest.ListCount - 1 Then
element = Me.Dest.List(Dest.ListIndex, 0)
element2 = Me.Dest.List(Dest.ListIndex, 1)
element3 = Me.Dest.List(Dest.ListIndex, 2)
p = Me.Dest.ListIndex
Me.Dest.AddItem element, p + 2
Me.Dest.List(p + 2, 2) = element3
Me.Dest.RemoveItem Me.Dest.ListIndex
Me.Dest.ListIndex = p + 1
End If
End Sub |