Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox Sortierung - Typenkonflikt

Listbox Sortierung - Typenkonflikt
03.12.2020 12:39:40
VBAmarv
Hallo zusammen,
folgenden Code verwende ich zur Sortierung einzelner Spalten einer Listbox:
  • 
    Function BubbleSortUp(lngLBound As Long, lngUBound As Long, bytSpalte As Byte)
    Dim j As Long
    Dim i As Long
    Dim k As Long
    Dim vTemp As Variant
    For j = lngUBound - 1 To lngLBound Step -1
    ' Alle links davon liegenden Zeichen auf richtige Sortierung
    ' der jeweiligen Nachfolger überprüfen:
    For i = lngLBound To j
    ' Ist das aktuelle Element seinem Nachfolger gegenüber korrekt sortiert?
    If (ListBox1.List(i, bytSpalte)) > (ListBox1.List(i + 1, bytSpalte)) Then
    ' Element und seinen Nachfolger vertauschen.
    For k = 0 To 6
    vTemp = ListBox1.List(i, k)
    **********  ListBox1.List(i, k) = ListBox1.List(i + 1, k)
    ListBox1.List(i + 1, k) = vTemp
    Next k
    End If
    Next i
    Next j
    End Function
    

  • Wir mit einem CommandButton augerufen über
  • Call BubbleSortUp(0, ListBox1.ListCount - 1, 2)

  • Diesen Code habe ich für eine weitere Listbox kopiert und umbenannt.
    Hier erscheint bei Aufruf nun der Fehler bei der markierten Spalte (*********)
    "Eigenschaft List konnte nicht gesetzt werden. Typenkonflikt."
    Es wird auch auf die korrekte Listbox verwiesen.
    Ich komme hier nicht weiter.
    Ggf. weis hier jemand Rat?
    Lieben Dank vorab.

    4
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Listbox Sortierung - Typenkonflikt
    03.12.2020 12:50:07
    Daniel
    Hi
    Bevor ich mich mit Sortier-Code rumplage, kopieren ich die Liste in eine freie Stelle der Tabelle, sortieren dann mit der Excelmenüfunktion und lese das Ergebnis wieder in die Listbox ein.
    Ist viel einfacher zu programmieren und man kann die ganzen Optionen nutzen (mehrere Kriterien, aufsteigend, absteigen, stabiles sortieren usw)
    Gruß Daniel
    AW: Listbox Sortierung - Typenkonflikt
    03.12.2020 13:27:31
    ralf_b
    
    ListBox1.List(i + 1, k)  was steht denn da drin ?
    ist i+1 evtl. > j  ?
    

    AW: Listbox Sortierung - Typenkonflikt
    03.12.2020 13:39:04
    Rudi
    Hallo,
    würde ich ganz anders machen.
    in ein Modul:
    Sub BubbleSortUp(objListBox As Object, vntSpalte)
    Dim j As Long
    Dim i As Long
    Dim k As Long
    Dim arrTmp
    Dim vTemp As Variant
    arrTmp = objListBox.List
    If vntSpalte = "" Then vntSpalte = 0
    If vntSpalte > UBound(arrTmp, 2) Then vntSpalte = UBound(arrTmp, 2)
    For j = UBound(arrTmp) - 1 To LBound(arrTmp) Step -1
    ' Alle links davon liegenden Zeichen auf richtige Sortierung
    ' der jeweiligen Nachfolger überprüfen:
    For i = LBound(arrTmp) To j
    ' Ist das aktuelle Element seinem Nachfolger gegenüber korrekt sortiert?
    If arrTmp(i, vntSpalte) > (arrTmp(i + 1, vntSpalte)) Then
    ' Element und seinen Nachfolger vertauschen.
    For k = LBound(arrTmp, 2) To UBound(arrTmp, 2)
    vTemp = arrTmp(i, k)
    arrTmp(i, k) = arrTmp(i + 1, k)
    arrTmp(i + 1, k) = vTemp
    Next k
    End If
    Next i
    Next j
    objListBox.List = arrTmp
    End Sub
    

    in der UF z.B.
    Private Sub CommandButton1_Click()
    Call BubbleSortUp(ListBox1, 0) 'für die erste Spalte
    End Sub
    

    Gruß
    Rudi
    Anzeige
    AW: Listbox Sortierung - Typenkonflikt
    04.12.2020 17:40:13
    VBAMarv
    Vielen Dank. Beide Varianten funktionieren problemlos!
    Danke.

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige