KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment déplacer rapidement des éléments d’une zone de liste à une autre dans Excel ?

AuteurSun Date de modification

Avez-vous déjà essayé de déplacer des éléments d’une zone de liste vers une autre, comme le montre la capture d’écran ci-dessous ? Découvrez dès maintenant comment réaliser cette opération dans Excel.

une capture d’écran montrant les zones de liste avant le déplacement des élémentsune capture d’écran d’une flècheune capture d’écran montrant les zones de liste après le déplacement des éléments

Déplacer des éléments entre des zones de liste


Déplacer des éléments entre des zones de liste

Aucune fonction intégrée ne permet d’accomplir cette tâche, mais je dispose d’un code VBA qui peut vous être utile.

1. Commencez par créer une liste de données qui servira d’éléments aux zones de liste, dans une nouvelle feuille nommée Admin_Lists.

une capture d’écran des données sources

2. Sélectionnez ensuite ces données, puis accédez à la zone Nom ItemList pour leur attribuer un nom. Voir la capture d’écran :

une capture d’écran du nommage des données sources dans la zone Nom

3. Ensuite, dans la feuille qui contiendra les deux zones de liste, cliquez sur Développeur > Insérer > Zone de liste (contrôle ActiveX), puis dessinez deux zones de liste. Voir la capture d’écran :

une capture d’écran de la sélection du contrôle Zone de liste sous l’onglet Développeurune capture d’écran de la flèche droiteune capture d’écran montrant deux zones de liste créées

Si l’onglet Développeur est masqué dans votre ruban, Comment afficher/masquer l’onglet Développeur dans Excel 2007/2010/2013 Ruban ? cet article vous expliquera comment l’afficher.

4. Cliquez ensuite sur Développeur > Insérer > Bouton de commande (contrôle ActiveX), puis dessinez quatre boutons entre les deux zones de liste. Voir la capture d’écran :

une capture d’écran de la sélection du contrôle Bouton de commandeune capture d’écran d’une flèche droite 1une capture d’écran montrant les boutons de commande créés

Renommez dès maintenant les quatre boutons de commande à l’aide de la fonction « Nouveau nom ».

5. Sélectionnez le premier bouton de commande, cliquez sur Propriétés, puis, dans le volet Propriétés BTN_moveAllRight, attribuez-lui le nom suivant et saisissez >> dans la zone de texte située à côté de Légende. Voir la capture d’écran :

une capture d’écran montrant comment modifier les propriétés du bouton de commande

6. Répétez l’étape 5 pour renommer les trois derniers boutons de commande selon les noms indiqués ci-dessous, en ajoutant également les flèches correspondantes dans leurs légendes. Voir la capture d’écran :

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

une capture d’écran du deuxième bouton de commande après modification des propriétésune capture d’écran du troisième bouton de commande après modification des propriétésune capture d’écran du quatrième bouton de commande après modification des propriétés

7. Cliquez avec le bouton droit sur le nom de la feuille contenant les zones de liste et les boutons de commande, puis sélectionnez Afficher le code dans le menu contextuel. Voir la capture d’écran :

une capture d’écran de l’ouverture de l’éditeur de code VBA

8. Copiez et collez le code macro ci-dessous dans le Module script, enregistrez-le, puis 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

une capture d’écran montrant comment utiliser le code VBA

9. Accédez ensuite à une autre feuille, puis revenez à celle qui contient les zones de liste : vous verrez alors les données s’afficher automatiquement dans la première zone. Cliquez sur les boutons de commande pour déplacer facilement les éléments d’une zone à l’autre.

une capture d’écran montrant les données sources dans une zone de liste après exécution du code VBA

Déplacer la sélection

une capture d’écran du déplacement d’éléments d’une zone de liste vers une autre un par unune capture d’écran de la flècheune capture d’écran montrant que deux éléments ont été déplacés vers la zone de liste de droite

Tout déplacer

une capture d’écran indiquant quel bouton de commande permet de déplacer tous les éléments d’une liste vers une autre simultanémentune capture d’écran de la flèche 2une capture d’écran montrant que tous les éléments ont été déplacés d’une zone de liste vers une autre simultanément

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre 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 rend votre travail bien plus facile

  • Activez l’édition 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é de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels