Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1028to1032
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

Schleife und Sortieren

Schleife und Sortieren
26.11.2008 20:07:06
SteffenS
Hallo Zusammen,
ich möchte gern in eine Listbox einer Userform Werte einer Tabelle einlesen z.B.: Spalte A1:A10
bevor die Werte aber dargestellt werden, möchte ich diese gern sortieren.
Wie geht so was.
Danke im Voraus
MFG
Steffen Schmerler

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife und Sortieren
26.11.2008 20:36:00
Tino
Hallo,
sortiere zuerst Deine Tabelle und lese diese danach ein, ist wahrscheinlich am einfachsten.
Oder Lese Deine Tabelle in ein Area und Sortiere diese mittels QUICKSORT oder Bubblesort, Anleitungen hierfür findest Du über Google.
Gruß Tino
wie erstelle ich ein Array?
26.11.2008 22:01:00
SteffenS
Leider weiß ich (noch) nicht wie man den Inhalt eines Arrays mit Hilfe eine Schleife erweitert
Vielleicht kann mir da jemand helfen?
Danke im Voraus.
MFG
Steffe
AW: wie erstelle ich ein Array?
26.11.2008 22:42:00
Tino
Hallo,
habe Dir hier mal ein einfaches Beispiel aufgebaut.
https://www.herber.de/bbs/user/57170.xls
Gruß Tino
Anzeige
AW: wie erstelle ich ein Array?
26.11.2008 22:56:00
Tino
Hallo,
natürlich kannst Du auch so die Area in die Listbox schreiben.
ListBox1.List = meArea
Aber zum Umgang mit der Area sollte mein Beispiel verständlicher sein.
Gruß Tino
AW: wie erstelle ich ein Array?
27.11.2008 16:17:00
Tino
Hallo,
habe Dir hier noch ein Beispiel mit dem erweiterten Quicksort aufgebaut.
Option Explicit
Dim sArray As Variant
Sub TestLeseArea_Sort()
 Dim Bereich As Range
 Set Bereich = Range("A1", Cells(Rows.Count, "C").End(xlUp))
 
 sArray = Bereich
  'Syntax: "Pos erstes Element", "Pos letztes Element", "Sortierspalte" 
  QuickSort Lbound(sArray), Ubound(sArray), 1 'Arrea Sortieren 
 
 Bereich.Offset(0, 4) = sArray 'sortierte Area in einen Bereich schreiben 
  Erase sArrea 'Area wieder löschen 
End Sub

Sub QuickSort(ByVal MinElem As Long, MaxElem As Long, lngCol As Long)
Dim Mitte As Long
Dim vDummy As Variant
Dim i As Long, j As Long, A As Long
    If MinElem > MaxElem Then
        Exit Sub
    End If
    Mitte = (MinElem + MaxElem) \ 2
    i = MinElem
    j = MaxElem
    Do

        Do While sArray(i, lngCol) < sArray(Mitte, lngCol)
            i = i + 1
        Loop

        Do While sArray(j, lngCol) > sArray(Mitte, lngCol)
            j = j - 1
        Loop
 
        If i <= j Then
          For A = 1 To Ubound(sArray, 2)
            vDummy = sArray(j, A)
            sArray(j, A) = sArray(i, A)
            sArray(i, A) = vDummy
          Next A
            i = i + 1
            j = j - 1
        End If
 
    Loop Until i > j

    QuickSort MinElem, j, lngCol
    QuickSort i, MaxElem, lngCol
End Sub


Ich hoffe Du kommst damit klar, Rückmeldung wäre nett.
Gruß Tino

www.VBA-Excel.de


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige