vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
ListBox: Funktion für das Sortieren einer Spalte 
Autor: Manfred X
Datum: 22.07.12 03:17

'Sortierfunktion für Spalten einer Listbox
'columindex: Spaltenindex ab 1
'columntype: Datentyp Sortierspalte 0=string, 1=Double, 2=Date
Public Sub SortListbox(ByVal lbo As Msforms.ListBox, _
                       ByVal columnindex As Integer, _
                       ByVal columntype As Integer)
 
   Dim entries() As Variant
   With ListBox1
 
      ReDim entries(.ListCount - 1, .ColumnCount - 1)
      For i = 0 To .ListCount - 1
         For k = 0 To .ColumnCount - 1
            entries(i, k) = .List(i, k)
         Next k
      Next i
 
      Call QuickSortArray(entries, columnindex, columntype, _
                          0, .ListCount - 1)
 
      For i = 0 To .ListCount - 1
         For k = 0 To .ColumnCount - 1
           .List(i, k) = entries(i, k)
         Next k
      Next i
 
   End With
 
End Sub
 
' vSort: 2-dimensionales Array
' columnindex: Spalte, nach der sortiert werden soll (1, 2, 3, ...)
' columntype: Datentyp Sortierspalte 0=String, 1=Double, 2=Date
Public Sub QuickSortArray(vSort As Variant, _
  ByVal columnindex As Integer, ByVal columntype As Integer, _
  ByVal lngStart As Long, ByVal lngEnd As Long)
 
  Dim i As Long, j As Long
  Dim h As Variant, x As Variant
  Dim u As Long, lb_dim As Long, ub_dim As Long
 
  ' Anzahl Elemente pro Datenzeile
  lb_dim = LBound(vSort, 2)
  ub_dim = UBound(vSort, 2)
 
  i = lngStart: j = lngEnd
  x = vSort((lngStart + lngEnd) / 2, columnindex - 1)
 
  ' Array aufteilen
  Do
 
    While CompareEntries(columntype, vSort(i, columnindex - 1), x) = -1
      i = i + 1
    Wend
    While CompareEntries(columntype, vSort(j, columnindex - 1), x) = 1
      j = j - 1
    Wend
 
    If (i <= j) Then
      ' Wertepaare miteinander tauschen
      For u = lb_dim To ub_dim
        h = vSort(i, u)
        vSort(i, u) = vSort(j, u)
        vSort(j, u) = h
      Next u
      i = i + 1: j = j - 1
    End If
  Loop Until (i > j)
 
  If (lngStart < j) Then _
     QuickSortArray vSort, columnindex, columntype, lngStart, j
  If (i < lngEnd) Then _
     QuickSortArray vSort, columnindex, columntype, i, lngEnd
 
End Sub
 
Public Function CompareEntries(ByVal columntype As Integer, _
          ByVal e1 As Variant, ByVal e2 As Variant) As Integer
 
          If columntype = 0 Then
             If CStr(e1) > CStr(e2) Then
                CompareEntries = 1
             ElseIf CStr(e1) < CStr(e2) Then
                CompareEntries = -1
             Else
                CompareEntries = 0
             End If
          ElseIf columntype = 1 Then
             If CDbl(e1) > CDbl(e2) Then
                CompareEntries = 1
             ElseIf CDbl(e1) < CDbl(e2) Then
                CompareEntries = -1
             Else
                CompareEntries = 0
             End If
          Else
             If CDate(e1) > CDate(e2) Then
                CompareEntries = 1
             ElseIf CDate(e1) < CDate(e2) Then
                CompareEntries = -1
             Else
                CompareEntries = 0
             End If
          End If
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tipp 1555: ListBox-Einträge blitzschnell neu sortieren5.329PhoenixUnderFire20.07.12 12:46
Re: ListBox-Einträge blitzschnell neu sortieren3.540Manfred X20.07.12 21:36
Re: ListBox-Einträge blitzschnell neu sortieren2.852PhoenixUnderFire22.07.12 01:57
ListBox: Funktion für das Sortieren einer Spalte2.930Manfred X22.07.12 03:17
Anwendungsbeispiel3.018Manfred X22.07.12 03:20
Re: Anwendungsbeispiel2.813PhoenixUnderFire23.07.12 15:17
Version Zwo: Funktion für das Sortieren einer Listbox-Spalte3.034Manfred X22.07.12 15:41
Re: Version Zwo: Funktion für das Sortieren einer Listbox-Sp...2.560PhoenixUnderFire20.06.13 13:45
Re: ListBox-Einträge blitzschnell neu sortieren2.845PhoenixUnderFire31.07.12 09:51
ListBox-Einträge filtern3.425Manfred X31.07.12 13:27

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel