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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige