Witam
nie bardzo radzę sobie z tym sortowaniem bąbelkowym jeżeli chodzi o tak dużą tablicę danych, czy może mnie ktoś naprowadzić jak to zrobić ,będę bardzo wdzięczny
podaję kod w którym korzystam z arkusza
do zmiany sortowania wykorzystuję ToggleButton "S_1"
Private Sub S1_Click()
Dim i, a, Licznik As Long
If ListBox1.ListCount = 0 Then Exit Sub
With ListBox1
ThisWorkbook.Worksheets("sortowanie").Range("A1").Resize(.ListCount, .ColumnCount) = .List
End With
a = Sheets("sortowanie").Range("A65536").End(xlUp).Row
If S1.Value = False Then
Worksheets("sortowanie").Range("A1:O" & a).sort _
Key1:=Worksheets("sortowanie").Range("A1"), Order1:=xlDescending, Header:=xlNo
End If
If S1.Value = True Then
Worksheets("sortowanie").Range("A1:O" & a).sort _
Key1:=Worksheets("sortowanie").Range("A1"), Order1:=xlAscending, Header:=xlNo
End If
ListBox1.Clear
With Sheets("sortowanie")
For i = 1 To .Range("A65536").End(xlUp).Row
ListBox1.AddItem
ListBox1.List(Licznik, 0) = .Cells(i, 1).Value
ListBox1.List(Licznik, 1) = .Cells(i, 2).Value
ListBox1.List(Licznik, 2) = .Cells(i, 3).Value
ListBox1.List(Licznik, 3) = .Cells(i, 4).Value
ListBox1.List(Licznik, 4) = .Cells(i, 5).Value
ListBox1.List(Licznik, 5) = .Cells(i, 6).Value
ListBox1.List(Licznik, 6) = .Cells(i, 7).Value
ListBox1.List(Licznik, 7) = .Cells(i, 8).Value
ListBox1.List(Licznik, 8) = .Cells(i, 9).Value
ListBox1.List(Licznik, 9) = .Cells(i, 10).Value
ListBox1.List(Licznik, 10) = Format(.Cells(i, 11), "dd-mm-yyyy")
ListBox1.List(Licznik, 11) = Format(.Cells(i, 12), "dd-mm-yyyy")
ListBox1.List(Licznik, 12) = .Cells(i, 13).Value
ListBox1.List(Licznik, 13) = .Cells(i, 14).Value
ListBox1.List(Licznik, 14) = .Cells(i, 15).Value
Licznik = Licznik + 1 ' licznik znalezionych modułów
Next i
End With
Set zakresCzyszczenia = ThisWorkbook.Worksheets("sortowanie").Range("A1:O6000")
zakresCzyszczenia.ClearContents 'Czyścimy tylko zaw
Worksheets("sortowanie").Visible = 2
Set zakresCzyszczenia = Nothing
End Sub
Pozdrawiam |