Bonsoir Iliyes, BrunoM45,
Voici un complément. Prendre le tableau de 3 colonnes fourni et le placer en A1 d'une feuille appelée BD.
Réalise un Userform avec 2 ListBox. Le 1 pour la base de données et le 2 pour montrer la sortie d'un membre de la base de données.
Lance le formulaire puis avec le bouton gauche de la souris prends une ligne (exemple Dupond Louis) en ListBox1 (par appui bouton gauche) et déplace la souris en maintenant le bouton vers la ListBox2 puis relâche le bouton sur celle-ci.
Private Sub ListBox2_BeforeDragOver(ByVal Cancel As _
MSForms.ReturnBoolean, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal DragState As Long, _
ByVal Effect As MSForms.ReturnEffect, _
ByVal Shift As Integer)
Cancel = True
Effect = 1
End Sub
Private Sub ListBox2_BeforeDropOrPaste(ByVal _
Cancel As MSForms.ReturnBoolean, _
ByVal Action As Long, ByVal Data As _
MSForms.DataObject, ByVal X As Single, _
ByVal Y As Single, ByVal Effect As _
MSForms.ReturnEffect, ByVal Shift As Integer)
Cancel = True
Effect = 1
ListBox2.AddItem Data.GetText
End Sub
Private Sub ListBox1_MouseMove(ByVal Button As _
Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Dim MyDataObject As DataObject
If Button = 1 Then
Set MyDataObject = New DataObject
Dim Effect As Integer
Z = ListBox1.ListIndex
MyDataObject.SetText ListBox1.Value
Effect = MyDataObject.StartDrag
ListBox1.RemoveItem (Z)
Sheets("BD").Rows(Z + 2).EntireRow.Delete
End If
End Sub
Private Sub UserForm_Initialize()
Set f = Sheets("BD")
Me.ListBox1.List = f.Range("A2:C" & f.[A65000].End(xlUp).Row).Value
Me.TextBox1 = Application.Sum(Application.Index(Me.ListBox1.List, , 3)) ' colonne 3
End Sub
Nom | Ville | Age |
Dupont Jean | Paris | 58 |
Durand Paul | Boulogne | 33 |
Martin René | Paris | 45 |
Dupond Louis | Boulogne | 28 |
Bisson Léo | Paris | 21 |
Bertin Arthur | Paris | 26 |
| | |
| | |
Edit: Bien mettre 3 colonnes au premier ListBox1