Trie éléments ListBox

  • Initiateur de la discussion Initiateur de la discussion Pierre31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Pierre31

Guest
Bonjour à tous,
Je cherche un code vba me permettant de trier en ordre croissant le contenu d'une ListBox et d'afficher à nouveau dans la ListBox la liste Triée.
Je n'arrive pas à adapter les exemples trouvés.
D'avance merci pour votre coopération
Cordialement
Pierre
 
bonjour pierre

2 méthodes pour le prix d'une :

par une boucle :


Dim i As Byte, j As Byte
Dim temp


With ListBox1
       
For i = 0 To .ListCount - 1
               
For j = 0 To .ListCount - 1
                       
If .List(i) < .List(j) Then
                                temp = .List(i)
                                .List(i) = .List(j)
                                .List(j) = temp
                       
End If
               
Next j
       
Next i
End With


par une feuille en utilisant le trie d'excel :


Dim feuille As Worksheet

Application.ScreenUpdating =
False
Application.DisplayAlerts =
False

Set feuille = Sheets.Add
With feuille
        .Range('a1').Resize(ListBox1.ListCount) = ListBox1.List
        .Columns(1).Sort Key1:=Range('A1'), Order1:=xlAscending
        ListBox1.Clear
        ListBox1.List = .Range('a1:a' & Range('a65536').End(xlUp).Row).Value
        .Delete
End With

Application.ScreenUpdating =
True
Application.DisplayAlerts =
True


salut
 
Salut Pierre, Hervé, le problème a été résolu sauf que je m'attarde un tout petit peu sur le tri de hervé. J'effectuais le trie de la même façon mais cette méthode a ix1=i itération en plus que la méthode que je propose ci dessous.
Les deux méthodes donnent un résultat identique et juste.

Hervé écrit:
Dim i As Byte, j As Byte
Dim temp


With ListBox1
For i = 0 To .ListCount - 1
For j = i+1 To .ListCount - 1
If .List(i) < .List(j) Then
temp = .List(i)
.List(i) = .List(j)
.List(j) = temp
End If
Next j
Next i
End With
 
Tri éléments ListBox

Bonsoir à tous,
Une petite question - sans doute toute simple pour vous mais compliqué pour un débutant tel que moi :

où coller ce bout de code trouvé sur le Forum (et proposé par HERVE) qui permet de trier alphabétiquement une listbox ou une combobox ?

D'avance un grand merci.

PHP:
Dim i As Byte, j As Byte
Dim temp

With ListBox1
* * * * For i = 0 To .ListCount - 1
* * * * * * * * For j = 0 To .ListCount - 1
* * * * * * * * * * * * If .List(i) < .List(j) Then
* * * * * * * * * * * * * * * * temp = .List(i)
* * * * * * * * * * * * * * * * .List(i) = .List(j)
* * * * * * * * * * * * * * * * .List(j) = temp
* * * * * * * * * * * * End If
* * * * * * * * Next j
* * * * Next i
End With
 
Re : Trie éléments ListBox

Salut Jules
bonjour le fil
Bonjour le Forum

Une occasion pour moi ,de Saluer mon Ami Hervé (qui n'a pas encore vu cette question mais cela ne saurait tarder)je me permet donc de mettre cette exemple ( qui reprends les deux méthodes de Hervé ) à l'ouverture dans Userform1.activate la première et le bouton Tri descendant pour la deuxième
Le Fichier :
Bonne journée
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
722
Réponses
7
Affichages
1 K
Réponses
3
Affichages
295
  • Question Question
Microsoft 365 Macro VBA - Excel
Réponses
12
Affichages
799
Retour