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 :
Pouvez-vous m’expliquer pourquoi.
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
Merci d’avance pour votre aide.
Partager