Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren der Daten

Sortieren der Daten
11.02.2008 10:04:00
Martin
Hallo zusammen,
ich habe folgendes Problem. Mir liegen csv Dateien mit dem Inhalt wie in der Beispieldatei gezeigt als Messergebnisse vor. Nun möchte ich die Spalten nach der ersten Zeile sortieren.
Datei: https://www.herber.de/bbs/user/49805.xls
In de ersten Zeile soll stehen: Subject:A1 [Leerspalte] [Leerspalte] Subject:A2 usw...
In der nächsten Zeile dann jeweils: x y z (zusammen 3 Spalten)
Zu Subject:A1 gehören dann jeweils x y und z koordinaten in einer eigenen Spalte.
In den nächsten Zeilen folgen dann die Koordinaten.
Ist dies irgendwie per commandbutton möglich?
Danke schonmal
Martin

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

Betreff
Datum
Anwender
Anzeige
AW: Sortieren der Daten
11.02.2008 11:07:56
Erich
Hallo Martin,
versuchs mal mit dieser Prozedur:

Option Explicit
Sub Sort_spez()
Dim intC As Integer, ii As Integer
intC = Cells(2, Columns.Count).End(xlToLeft).Column
For ii = intC - 1 To 1 Step -3
Cells(1, ii).Resize(1, 2) = Cells(1, ii - 1).Value
Next ii
ActiveSheet.UsedRange.Range(Columns(2), Columns(intC)).Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Key2:=Range("B2"), Order2:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
For ii = intC - 1 To 1 Step -3
Cells(1, ii).Resize(1, 2).ClearContents
Next ii
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Sortieren der Daten
11.02.2008 11:38:00
Martin
Hallo Erich,
hat bestens geklappt Dein Code.
Vielen Dank für Deine schnelle Hilfe.
Grüße
Martin

AW: Sortieren der Daten
11.02.2008 11:10:50
Josef
Hallo Martin,
probier mal.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Sort()
Dim intC As Integer, i As Integer, n As Integer
Dim a() As Variant, b() As Variant

intC = Application.Max(2, Cells(1, Columns.Count).End(xlToLeft).Column)

For i = 2 To intC Step 3
    Redim Preserve a(n)
    a(n) = Range(Cells(1, i), Cells(Cells(Rows.Count, i).End(xlUp).Row, i + 2))
    n = n + 1
Next

Redim b(UBound(a))

For i = 0 To UBound(a)
    b(i) = a(i)(1, 1)
Next

QuickSort b

intC = 2

For i = 0 To UBound(b)
    For n = 0 To UBound(a)
        If a(n)(1, 1) = b(i) Then
            Range(Cells(1, intC), Cells(UBound(a(n), 1), intC + 2)) = a(n)
            intC = intC + 3
            Exit For
        End If
    Next
Next

End Sub
Sub QuickSort(data() As Variant, Optional UG, Optional OG)
Dim P1&, P2&, T1 As Variant, T2 As Variant

UG = IIf(IsMissing(UG), LBound(data), UG)
OG = IIf(IsMissing(OG), UBound(data), OG)

P1 = UG
P2 = OG
T1 = data((P1 + P2) / 2)

Do
    
    Do While (data(P1) < T1)
        P1 = P1 + 1
    Loop
    
    Do While (data(P2) > T1)
        P2 = P2 - 1
    Loop
    
    If P1 <= P2 Then
        T2 = data(P1)
        data(P1) = data(P2)
        data(P2) = T2
        P1 = P1 + 1
        P2 = P2 - 1
    End If
    
Loop Until (P1 > P2)

If UG < P2 Then QuickSort data, UG, P2
If P1 < OG Then QuickSort data, P1, OG

End Sub


Gruß Sepp



Anzeige
AW: Sortieren der Daten
11.02.2008 11:43:38
Martin
Hallo Josef,
der Code vom Erich (Post über Deinem) hat bereits bestens geklappt.
Habe Deinen Code natürlich auch probiert und er funktioniert auch bestens.
Vielen Dank für Deine Hilfe
Grüße Martin

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige