XL 2010 Organisez les données par ordre croissant et décroissant via listbox1 et combobox1

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 !

Mody200

XLDnaute Occasionnel
95510_673e00db1a8af036365655.png
 

Pièces jointes

Solution
Je remercie ceux qui gèrent ce site
J'ai trouvé la solution sur d'autres sites et j'ai souhaité ajouter ce code pour en bénéficier


Private Sub UserForm_Initialize()
cod......................
...........................................................

tbl = "Table2"
OnRng = Range(tbl).value
For i = 1 To UBound(OnRng): OnRng(i, 2) = CDate(OnRng(i, 2)): Next i
Irow = Range(tbl).Columns.Count
ColVisu = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
ListBox1.ColumnCount = 12

Me.ComboBox1.List = Application.Transpose(Range(tbl).Offset(-1).Resize(1)) ' Ordre tri
End Sub
Private Sub ComboBox1_click()
Dim tbl()
colTri = Me.ComboBox1.ListIndex
tbl = Me.ListBox1.List
TriMultiCol tbl, LBound(tbl), UBound(tbl), colTri...
Bonjour
S'il vous plaît aidez-moi
Après une recherche entre deux dates et nom du pilote, les données sont triées par ordre croissant ou décroissant à l'aide de combobox1, mais une seule colonne apparaît dans la liste. Après avoir sélectionné la commande, je souhaite qu'il termine le processus de commande et l'affiche. Données dans toutes les colonnes après avoir sélectionné la colonne organisée par combobox1.
Remarque : Lorsque vous sélectionnez la colonne d'ordre, cette opération n'affecte pas l'ordre du reste des colonnes.
Je souhaite traiter le tri via ListBox1 uniquement, et cela n'affecte pas le processus de tri dans Worksheet2


3
 
Bonjour,
Vous etes aussi ici:
Mais passons.
Ce serait beaucoup plus simple avec une listview et vous n'auriez pas besoin d'un choix combobox pour faire le tri
 
Je remercie ceux qui gèrent ce site
J'ai trouvé la solution sur d'autres sites et j'ai souhaité ajouter ce code pour en bénéficier


Private Sub UserForm_Initialize()
cod......................
...........................................................

tbl = "Table2"
OnRng = Range(tbl).value
For i = 1 To UBound(OnRng): OnRng(i, 2) = CDate(OnRng(i, 2)): Next i
Irow = Range(tbl).Columns.Count
ColVisu = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
ListBox1.ColumnCount = 12

Me.ComboBox1.List = Application.Transpose(Range(tbl).Offset(-1).Resize(1)) ' Ordre tri
End Sub
Private Sub ComboBox1_click()
Dim tbl()
colTri = Me.ComboBox1.ListIndex
tbl = Me.ListBox1.List
TriMultiCol tbl, LBound(tbl), UBound(tbl), colTri
Me.ListBox1.List = tbl
End Sub
Sub Tri(a, gauc, droi)
ref = a((gauc + droi) \ 2)
g = gauc: d = droi

Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub
Sub TriMultiCol(a(), gauc, droi, colTri)
Dim colD, colF, ref, g, d, c, temp
colD = LBound(a, 2): colF = UBound(a, 2)
ref = a((gauc + droi) \ 2, colTri)
g = gauc: d = droi
Do
Do While a(g, colTri) < ref: g = g + 1: Loop
Do While ref < a(d, colTri): d = d - 1: Loop
If g <= d Then
For c = colD To colF
temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
Next
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then TriMultiCol a, g, droi, colTri
If gauc < d Then TriMultiCol a, gauc, d, colTri
End Sub
 

Pièces jointes

- 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
102
Réponses
10
Affichages
302
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
299
Réponses
3
Affichages
202
Réponses
3
Affichages
130
Réponses
15
Affichages
636
Retour