Note: The other languages of the website are Google-translated. Back to English

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

Avez-vous déjà essayé de déplacer les éléments d'une zone de liste à une autre zone de liste selon vos besoins, comme illustré ci-dessous? Ici, je vais parler de cette opération dans Excel.

doc déplacer des éléments entre la zone de liste 1 doc flèche droite doc déplacer des éléments entre la zone de liste 2

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


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

Aucune fonction intégrée ne peut vous aider à terminer le travail, 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 seront affichées comme éléments dans les zones de liste dans une nouvelle feuille qui a appelé Admin_Listes.
doc déplacer des éléments entre la zone de liste 3

2. Sélectionnez ensuite ces données et accédez à la Nom boîte pour leur donner un nom Liste des articles. Voir la capture d'écran:
doc déplacer des éléments entre la zone de liste 4

3. Puis dans une feuille qui contiendra les deux list box, cliquez sur Développeur > insérer > Zone de liste (contrôle Active X)et dessinez deux zones de liste. Voir la capture d'écran:

doc déplacer des éléments entre la zone de liste 5 doc flèche droite doc déplacer des éléments entre la zone de liste 6

Si la Développeur l'onglet est masqué votre ruban, Comment afficher / afficher l'onglet développeur dans le ruban Excel 2007/2010/2013? cet article vous expliquera comment le montrer.

4. Puis clique Développeur > insérer > Bouton de commande (contrôle Active X)et dessinez quatre boutons entre deux zones de liste. Voir la capture d'écran:

doc déplacer des éléments entre la zone de liste 7 doc flèche droite doc déplacer des éléments entre la zone de liste 8

Maintenant, pour renommer les quatre boutons de commande avec de nouveaux noms.

5. Sélectionnez le premier bouton de commande, cliquez sur Propriétéset dans le Propriétés volet, donnez un nom BTN_moveAllRight à lui, et tapez >> dans la zone de texte à côté Légende. Voir la capture d'écran:
doc déplacer des éléments entre la zone de liste 9

6. Répétez l'étape 5 pour renommer les trois derniers boutons de commande avec les noms ci-dessous et tapez également la flèche différente dans les légendes. Voir la capture d'écran:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

doc déplacer des éléments entre la zone de liste 10 doc déplacer des éléments entre la zone de liste 11 doc déplacer des éléments entre la zone de liste 12

7. Cliquez avec le bouton droit de la souris sur le nom de la feuille contenant les zones de liste et les boutons de commande, puis sélectionnez Voir le code dans le menu contextuel. Voir la capture d'écran:
doc déplacer des éléments entre la zone de liste 13

8. Copiez et collez le code de macro ci-dessous dans le Module puis enregistrez le code et fermez le Microsoft Visual Basic pour applications la fenêtre. 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

 doc déplacer des éléments entre la zone de liste 14

9. Passez ensuite à une autre feuille puis revenez à la feuille contenant les zones de liste, vous pouvez maintenant voir que les données de la liste ont été répertoriées dans la première zone de liste. Et cliquez sur les boutons de commande pour déplacer les éléments entre deux zones de liste.
doc déplacer des éléments entre la zone de liste 15

Déplacer la sélection

doc déplacer des éléments entre la zone de liste 16 doc flèche droite doc déplacer des éléments entre la zone de liste 17

Tout déplacer

doc déplacer des éléments entre la zone de liste 18 doc flèche droite doc déplacer des éléments entre la zone de liste 19

Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer 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 réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (1)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Mon Excel ne répond plus après avoir exécuté ce code. quel pourrait être le problème?
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL