Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Comment déplacer rapidement des éléments entre deux zones de liste dans Excel ?

Author Sun Last modified

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.

a screenshot showing the listboxes before moving items a screenshot of an arrow a screenshot showing the listboxes after moving items

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.

a screenshot of the source data

2. Ensuite, sélectionnez ces données et allez dans la zone Nom pour leur donner un nom : ItemList. Voir la capture d'écran :

a screenshot of naming the source data in the Name box

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 :

a screenshot of selecting the List Box control under the Developer tab a screenshot of the right arrow a screenshot showing two created list boxes

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 :

a screenshot of selecting command button control a screenshot of a right arrow 1 a screenshot showing the created command buttons

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 :

a screenshot showing how to changing the properties of the command button

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

a screenshot of the second command button after changing the properties a screenshot of the third command button after changing the properties a screenshot of the fourth command button after changing the properties

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 :

a screenshot of opening the VBA code editor

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

a screenshot showing how to use the VBA code

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.

a screenshot showing the source data in one list box after running the VBA code

Déplacer la sélection

a screenshot of moving items from one list box to another one by one a screenshot of the arrow a screenshot showing two items have been moved to the right list box

Tout déplacer

a screenshot of marking which command button can be used to move all items from one list to another at the same time a screenshot of arrow 2 a screenshot showing all items are moved from one list box to another at the same time

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : Exécution intelligente | Générer du code | Créer des formules personnalisées | Analyser des données et générer des graphiques | Appeler les Fonctions améliorées de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
Super RECHERCHEV : Recherche multi-critères | Recherche multi-valeurs | Recherche multi-feuilles | Correspondance floue...
Liste déroulante avancée : Créer rapidement une liste déroulante | Liste déroulante dépendante | Liste déroulante à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | Chiffrer/Déchiffrer les cellules | Envoyer un e-mail par liste | Super Filtre | Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...)...
Top15 des ensembles d’outils :12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...) |50+ Types de graphiques (Diagramme de Gantt, ...) |40+ Formules pratiques (Calculer l’âge en fonction de la date de naissance, ...) |19 outils d’insertion (Insérer un code QR, Insérer une image depuis le chemin, ...) |12 outils de conversion (Convertir en mots, Conversion de devises, ...) |7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...) | ... et bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement 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 chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels