Bonjour,
Je viens de découvrir un outil très puissant que pour gérer des listes de chaînes de texte (String) l'objet « System.Collections.ArrayList ». Il possède des méthodes qui permettent de faire des tris en ordre alphabétique ou alphabétique inverse d’une façon simple.

Je l’utilise avec un tableau structuré de 2 colonnes dans la première le NOM dans la seconde le PRÉNOM, pour alimenter un contrôle ListBox mais à l’initialisation de l’UserForm celui-ci n’est pas trier par ordre alphabétique.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub UserForm_Initialize()
    Dim Liste As Object
    Dim xItem
    Dim rg As Range
    'Alimenter la liste
    Set Liste = CreateObject("System.Collections.ArrayList")
    Set rg = Range("Tableau2")
    For Each c In rg
        Liste.Add c.Text  'il faut utiliser .Text sinon impossible de trier car on envoie un "range"
    Next c
    '=== liste des items triés en ordre alphabétique===
    Liste.Sort
    For Each xItem In Liste
        ListBox1.List = rg.Value
    Next
End Sub
Pouvez-vous m’expliquer pourquoi.

Merci d’avance pour votre aide.