Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
448to452
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
448to452
448to452
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren von Tabelle

Sortieren von Tabelle
05.07.2004 11:36:39
Tabelle
Guten Morgen,
und zwar stehe ich grad vor nem kleinen Problem. Will halt nur mal Fragen ob hier vielleicht jemand ne gute Antwort weiß, die mir weiterhilft. Und zwar will ich nen Bereich einer Excel Tabelle sortieren. Nun gibt es aber das Problem, dass in der Tabelle verbundene Zeilen sind und ich aus diesem Grund folgende Fehlermeldung bekomme:
"Für diese Aktion müssen alle verbunden Zellen diesselbe Größe haben."
Also von dem Rechtschreibfehler mal abgesehen, ich kann das halt net sortieren. Habe dann versucht mir ne eigene Routine zu schreiben, aber die scheitn etwas uneffizient zu sein, braucht für 150 Zeilen mehr als 3 Minuten usw.. das kann ich net gebrauchen...
vielleicht hat ja hier jemand ne cool Routine, werd auch mal versuchen noch was schnelleres zu schreiben
vielen Dank
Grüße
Morti

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren von Tabelle
Tabelle
Tipp-1
Application.Calculation am Anfang
auf manuell und am Ende auf automatisch
Tipp-2
Application.Screenupdating am Anfang
auf falsch und am Ende auf True setzen
Vorschlag: Post mal Deine Routine.
AW: Sortieren von Tabelle
Tabelle
Also dann fang ich mal an :)
das mit den ScreenUpdation habe ich schon und das mit dem Calculation habe ich jetzt acuh eingebaut, aber dauert immer noch etwas lange.. Habe so ne art bubblesort gebaut vielleicht sollte ich noch nen Quicksort verwenden.
Hier erst mal mein Code:

Function SortRange(nCell As myCell, strColumn As String)
Dim blnLoop As Boolean
Dim strTemp As String
Dim intMax As Integer
Dim zaehler As Integer
Dim blnFinish As Boolean
Dim value1 As Integer
Dim value2 As Integer
On Error Resume Next
intMax = nCell.Row
nCell.Row = nCell.START_ROW
blnFinish = False
Do While (Not blnFinish)
blnFinish = True
If (nCell.Row = intMax) Then
nCell.Row = nCell.START_ROW
End If
For zaehler = 5 To intMax - 1 Step 1
value1 = 0
value2 = 0
value1 = Left(Range(strColumn & zaehler).value, (InStr(Range(strColumn & zaehler).value, "-") - 1))
value2 = Left(Range(strColumn & zaehler + 1).value, (InStr(Range(strColumn & zaehler + 1).value, "-") - 1))
If (value1 > value2) Then
Tauschen (zaehler)
blnFinish = False
Exit For
End If
Next
nCell.Row = nCell.Row + 1
Loop
End Function


Function Tauschen(strRows As String)
Rows(strRows & ":" & strRows).Select
Selection.Cut
Rows(strRows + 2 & ":" & strRows + 2).Select
Selection.Insert Shift:=xlDown
End Function

myCell ist nen Type der so aussieht
Type myCell
Row As Integer
START_ROW As Integer
Column As String
Sheet As String
FoundColumn As String
End Type
Hm.. werd mal versuchen da ncoh was zu tricksen
dennoch
Danke
Grüße
Morti
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige