Comment déplacer rapidement des éléments entre deux zones de liste dans Excel ?
Avez-vous déjà essayé de déplacer des éléments d'une zone de liste à une autre selon vos besoins, comme le montre la capture d'écran ci-dessous ? Je vais vous parler de cette opération dans Excel.
![]() | ![]() | ![]() |
Déplacer des éléments entre des zones de liste
Déplacer des éléments entre des zones de liste
Il n'y a aucune fonction intégrée qui peut vous aider à terminer la tâche, mais j'ai un code VBA qui peut vous rendre service.
1. Tout d'abord, vous devez créer une liste de données qui sera affichée sous forme d'éléments dans les zones de liste dans une nouvelle feuille appelée Admin_Lists.
2. Ensuite, sélectionnez ces données et allez dans la zone Nom pour leur donner un nom : ItemList. Voir la capture d'écran :
3. Puis, dans une feuille qui contiendra les deux zones de liste, cliquez sur Développeur > Insérer > Zone de liste (Contrôle ActiveX), et dessinez deux zones de liste. Voir la capture d'écran :
![]() | ![]() | ![]() |
Si l'onglet Développeur est masqué dans votre ruban, Comment afficher/l'afficher l'onglet Développeur dans le Ruban Excel 2007/2010/2013 ? Cet article vous expliquera comment l'afficher.
4. Ensuite, cliquez sur Développeur > Insérer > Bouton de commande (Contrôle ActiveX), et dessinez quatre boutons entre les deux zones de liste. Voir la capture d'écran :
![]() | ![]() | ![]() |
Maintenant, renommez les quatre boutons de commande avec de nouveaux noms.
5. Sélectionnez le premier bouton de commande, cliquez sur Propriétés, et dans le volet Propriétés, donnez-lui le nom BTN_moveAllRight, et tapez >> dans la zone de texte à côté de Légende. Voir la capture d'écran :
6. Répétez l'étape 5 pour renommer les trois derniers boutons de commande avec les noms ci-dessous, et tapez également différentes flèches dans les légendes. Voir la capture d'écran :
BTN_MoveSelectedRight
BTN_moveAllLeft
BTN_MoveSelectedLeft
![]() | ![]() | ![]() |
7. Faites un clic droit sur le nom de la feuille qui contient les zones de liste et les boutons de commande, puis sélectionnez Afficher le code dans le menu contextuel. Voir la capture d'écran :
8. Copiez et collez le code macro ci-dessous dans le script du Module, puis enregistrez le code et fermez la fenêtre Microsoft Visual Basic pour Applications. Voir la capture d'écran :
VBA : Déplacer des éléments entre deux zones de liste
Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
Dim xCell As Range
Dim xRg As Range
Set xRg = Sheets("Admin_Lists").Range("ItemList")
Me.ListBox1.Clear
Me.ListBox2.Clear
With Me.ListBox1
.LinkedCell = ""
.ListFillRange = ""
For Each xCell In xRg
If xCell <> "" Then
.AddItem xCell.Value
End If
Next xCell
End With
Me.ListBox1.MultiSelect = fmMultiSelectMulti
Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub BTN_MoveSelectedLeft_Click()
Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_MoveSelectedRight_Click()
Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub
Private Sub BTN_moveAllLeft_Click()
Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub
Private Sub BTN_moveAllRight_Click()
Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub
Sub moveAll(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
xListBox2.AddItem xListBox1.List(I)
Next I
xListBox1.Clear
End Sub
Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
Dim I As Long
For I = 0 To xListBox1.ListCount - 1
If I = xListBox1.ListCount Then Exit Sub
If xListBox1.Selected(I) = True Then
xListBox2.AddItem xListBox1.List(I)
xListBox1.RemoveItem I
I = I - 1
End If
Next
End Sub
9. Ensuite, allez dans une autre feuille, puis revenez à la feuille contenant les zones de liste. Maintenant, vous pouvez voir que les données de la liste ont été listées dans la première zone de liste. Cliquez sur les boutons de commande pour déplacer les éléments entre les deux zones de liste.
Déplacer la sélection
![]() | ![]() | ![]() |
Tout déplacer
![]() | ![]() | ![]() |
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !