Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen markieren, dann sortieren ?

Forumthread: Zeilen markieren, dann sortieren ?

Zeilen markieren, dann sortieren ?
24.09.2007 14:35:48
Selma
Hallo Leute,
ich möchte ab Zeile 2 die Zeilen markieren die gleichen Zelleninhalt in Spalte G haben, dann die Sortierung anwenden. Danach die nächste Zeilen markieren die gleichen Zelleninhalt haben und wieder die Sortierung anwenden. usw...
Die Routine soll enden, wenn in Spalte G die Zellen ohne Ihnalt kommt.
Mir fehlt in der Routine der Abschnitt mit markieren der Zeilen. Was muss ich ändern?

Sub Sortierung_Zeilen_Multi_3()
Dim r As Integer
'xlDescending = absteigend
'xlAscending = aufsteigend
r = Selection.Row
Cells.Select
Selection.sort _
Key1:=Range("F2"), Order1:=xlAscending, _
Key2:=Range("G2"), Order2:=xlAscending, _
Key3:=Range("I2"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortTextAsNumbers
'Zeilen markieren....
Select Case Range("G" & r).Value
'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
'dies "TX" steht, dann soll diese Sortierung angewendet werden:
Case "TX":
Selection.sort _
Key1:=Range("I" & ActiveCell.Row), Order1:=xlAscending, _
Key2:=Range("B" & ActiveCell.Row), Order1:=xlAscending, _
Key3:=Range("H" & ActiveCell.Row), Order3:=xlAscending, Header:=xlGuess
'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
'dies "FT" steht, dann soll diese Sortierung angewendet werden:
Case "FT":
Selection.sort _
Key1:=Range("I" & ActiveCell.Row), Order1:=xlAscending, _
Key2:=Range("C" & ActiveCell.Row), Order1:=xlAscending, _
Key3:=Range("R" & ActiveCell.Row), Order3:=xlAscending, Header:=xlGuess
'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
'dies "CT" steht, dann soll diese Sortierung angewendet werden:
Case "CT":
Selection.sort _
Key1:=Range("T" & ActiveCell.Row), Order1:=xlAscending, _
Key2:=Range("R" & ActiveCell.Row), Order1:=xlAscending, _
Key3:=Range("A" & ActiveCell.Row), Order3:=xlAscending, Header:=xlGuess
End Select
End Sub


Vielen Dank im Voraus.
Liebe Grüße
Selma

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen markieren, dann sortieren ?
24.09.2007 19:55:15
Josef
Hallo Selma,
ungetestet, dafür ohne Markieren und Selectieren.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Sortierung_Zeilen_Multi_3()
Dim lngRow As Long, lngEnd As Long

'xlDescending = absteigend
'xlAscending = aufsteigend

On Error GoTo ErrExit
GMS

With ActiveSheet
    .Range("A1").CurrentRegion.Sort _
        Key1:=.Range("F2"), Order1:=xlAscending, _
        Key2:=.Range("G2"), Order2:=xlAscending, _
        Key3:=.Range("I2"), Order3:=xlAscending, _
        Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortTextAsNumbers
    
    lngEnd = Application.Max(.Cells(Rows.Count, 7).End(xlUp).Row, 2)
    
    
    For lngRow = 2 To lngEnd
        
        Select Case .Cells(Rows.Count, 7).Value
                
                'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
                'dies "TX" steht, dann soll diese Sortierung angewendet werden:
            Case "TX":
                .Rows(lngRow).Sort _
                    Key1:=.Cells(lngRow, 9), Order1:=xlAscending, _
                    Key2:=.Cells(lngRow, 2), Order1:=xlAscending, _
                    Key3:=.Cells(lngRow, 8), Order3:=xlAscending, _
                    Header:=xlGuess, _
                    Orientation:=xlLeftToRight
                
                
                'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
                'dies "FT" steht, dann soll diese Sortierung angewendet werden:
            Case "FT":
                .Rows(lngRow).Sort _
                    Key1:=.Cells(lngRow, 9), Order1:=xlAscending, _
                    Key2:=.Cells(lngRow, 3), Order1:=xlAscending, _
                    Key3:=.Cells(lngRow, 18), Order3:=xlAscending, _
                    Header:=xlGuess, _
                    Orientation:=xlLeftToRight
                
                
                'Wenn in markierten Zeilenbereich in erste Zeile des markierten Zeilenbereiches in Spalte G
                'dies "CT" steht, dann soll diese Sortierung angewendet werden:
            Case "CT":
                .Rows(lngRow).Sort _
                    Key1:=.Cells(lngRow, 20), Order1:=xlAscending, _
                    Key2:=.Cells(lngRow, 18), Order1:=xlAscending, _
                    Key3:=.Cells(lngRow, 1), Order3:=xlAscending, _
                    Header:=xlGuess, _
                    Orientation:=xlLeftToRight
                
        End Select
    Next
End With

ErrExit:
GMS True
End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long

With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Modus Then
        .Calculation = lngCalc
    Else
        lngCalc = .Calculation
        .Calculation = xlCalculationManual
    End If
    .Cursor = IIf(Modus, -4143, 2)
    .CutCopyMode = False
End With

End Sub

Gruß Sepp

Anzeige
AW: Zeilen markieren, dann sortieren ?
24.09.2007 23:23:30
Selma
Hallo Sepp,
besten Dank für Deine Hilfe. Es funktioniert prima.
Ich muss jetzt versuchen Dein Code zu verstehen ;)
Viele liebe Grüße
Selma
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige