XL 2019 tri dans une TXbox

  • Initiateur de la discussion Initiateur de la discussion MOmichel
  • 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 !

MOmichel

XLDnaute Junior
bonjour à tous et en premier Bonne année 2021

j'ai une TXBox ou il y a un résultat de recherche comme ci dessous
vous pouvez voir dans la colonne 2 de ce tableau l'exemple IC-070-0000075 qui apparait sur 2 lignes (ce qui est normal une action est en cours et l'autre dite "Clos")

je voudrais pouvoir afficher ce meme résultat mais en affichant le résultat de ma recherche par ordre croissant colonne 2
est-ce possible ?

je vous mets le code pour arriver à ce résultat en dessous de ce tableau


1609776012378.png




Dim C As Range, firstaddr As String
If Len(Me.txtReference.Value) = 0 Then Exit Sub
'lblrefrencecherchée = True
Me.lblrefrencecherchée.Visible = True
Me.ListBox1.Visible = True
ListBox1.ColumnCount = 6 '10 colonne dans le tableau de resultats
ListBox1.ColumnWidths = "25" 'espacé de 0 Pt
ListBox1.Clear 'clear la listBox à chaque passage de la fonction
Set C = Range("Tsource").Columns("a:c").Find("*" & Me.txtReference.Value & "*")
'Set C = Range("Tsource").Find("*" & Me.txtReference.Value & "*")

If Not C Is Nothing Then
firstaddr = C.Address
End If
Do Until C Is Nothing
'lblrefrencecherchée = True
Me.ListBox1.AddItem C.Row - 1
Me.ListBox1.List(ListBox1.ListCount - 1, 1) = Range("Tsource").Cells(C.Row - 1, 1).Value
Me.ListBox1.List(ListBox1.ListCount - 1, 2) = Range("Tsource").Cells(C.Row - 1, 3).Value
Me.ListBox1.List(ListBox1.ListCount - 1, 3) = Range("Tsource").Cells(C.Row - 1, 6).Value
Me.ListBox1.List(ListBox1.ListCount - 1, 4) = Range("Tsource").Cells(C.Row - 1, 8).Value
Me.ListBox1.List(ListBox1.ListCount - 1, 5) = (Range("Tsource").Cells(C.Row - 1, 11).Value & " " & Range("Tsource").Cells(C.Row - 1, 12).Value)
Set C = Range("Tsource").Columns("a:c").FindNext(After:=C)

'Set C = Range("Tsource").FindNext(After:=C)
If C.Address = firstaddr Then
Exit Do
End If
Loop

Application.ScreenUpdating = True
 
Bonsoir MOmichel

Peut être en Triant ta Base de Données
VB:
Range("Tsource")
Sur la les colonne(s) que tu veux en Croissant ou Décroissant tu auras ainsi tes données qui seront récupérées dans un tableau trié !
Pas de fichier , pas de proposition Lol
jean marie
 
Bonjour,

Je profite de ce sujet pour partager des fonctions de tri que j'ai récemment finalisées parce que les tris par permutations que j'utilisais sont limités en efficacité pour les grands tableaux.
Je suis parti d'un QuickSort récupéré sur internet, limité à un tableau à 1 dimension.

Je l'ai étendu à un tableau à 2 dimensions (disons lignes et colonnes pour rester pragmatique) dont la 2ème dimension peut être de n'importe quelle taille et qui peut être trié sur plusieurs colonnes.

J'ai fait la même chose avec un ShellSort mais le QuickSort est plus rapide.

Vu que les .bas ne sont pas acceptés ici (et pourquoi ?) -> https://cjoint.com/c/KAewGaxhEa4

VB:
'3 fonctions liées au tri:
'- QuickSortColumn qui permet de trier un tableau à 1 dimension ou un tableau 2 dimensions sur l'une de ses colonnes
'- QuickSortMultiColumns qui couvre les fonctionnalités de QuickSortColumn mais permet en plus de trier sur plusieurs colonnes
'- QuickSortValeursUniques qui retourne un tableau des valeurs uniques d'un tableau à 1 ou 2 dimension (2ème dimension = 1) ou d'un Range
'
 
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

Discussions similaires

Réponses
4
Affichages
439
Réponses
3
Affichages
569
Réponses
10
Affichages
714
Réponses
17
Affichages
1 K
Réponses
2
Affichages
371
Retour