216 Aufrufe
Gefragt in Tabellenkalkulation von jelena Experte (1k Punkte)
Guten Tag, wenn ich z.B. in Excel den Bereich C5:B19 mit der Maus auswähle soll dieser Bereich nach Spalte C5:B19 sortiert werden. Es kann auch sein, dass ein anderer Bereich ausgewählt wird, z.B. A20:E25 dann soll nach Spalte A20:B25 sortiert werden. Bitte um ein Makro, den Schaltknopf habe ich schon. Danke

15 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)
Hi Jelena,

benutze den Makrorekorder, um ein entsprechendes Makro aufzuzeichnen.

Bis später, Karin
0 Punkte
Beantwortet von jelena Experte (1k Punkte)
Hallo Karin, das geht leider nicht da sich der Bereich, den ich jedes Mal mit der Maus auswähle, sich dauernd ändert (es gibt keinen fixen Bereich). Es soll immer nach den ersten 2 ausgewählten Spalten sortiert werden. Danke
0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)
Hi Jelena,

doch das geht und das spielt auch erstmal keine Rolle, Hauptsache du hast das Grundgerüst für den Code - den Rest kann man anpassen, wenn du den aufgezeichneten Code hier postest.

Bis später, Karin
0 Punkte
Beantwortet von jelena Experte (1k Punkte)

Hallo Karin hier der Code, der Bereich und die ("Tabelle1") kann sich ändern. Danke

Sub FFSortieren()
' FFSortieren Makro
    Range("C5:P19").Select
    ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add2 Key:=Range( _
        "C5:C19"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Tabelle1").Sort
        .SetRange Range("C5:P19")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)

Hi Jelena,

dein Code sortiert nur nach der 1. Spalte - du hattest geschrieben, dass nach den ersten beiden Spalten sortiert werden soll.

Falls tatsächlich nur nach der 1. Spalte sortiert werden soll dann reicht dieser Code:

Sub Sortieren()
    Dim rngBereich As Range
    Set rngBereich = Selection
    rngBereich.Sort key1:=rngBereich.Cells(1)
End Sub

Bis später, Karin

0 Punkte
Beantwortet von jelena Experte (1k Punkte)
Hallo Karin, wenn möglich dann nach den ersten 2 Spalten sortieren. Danke
0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)

Hi Jelena,

mit folgendem Code wird zuerst nach der 2. und anschließend nach der 1. Spalte sortiert:

Sub Sortieren()
    Dim rngBereich As Range
    Set rngBereich = Selection
    'wenn mehr als 1 Spalte markiert sind dann:
    'zuerst nach Spalte 2 und anschließend nach Spalte 1 sortieren
    If rngBereich.Columns.Count > 1 Then
        rngBereich.Sort key1:=rngBereich.Columns(2)
        rngBereich.Sort key1:=rngBereich.Columns(1)
    Else
        rngBereich.Sort key1:=rngBereich.Columns(1)
    End If
End Sub

Bis später, Karin

0 Punkte
Beantwortet von jelena Experte (1k Punkte)

Hallo Karin, die 2. Spalte wird nicht richtig sortiert. Danke

0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)

Hi Jelena,

was ist an dieser Sortierung falsch? ROBERT kommt doch vor SARA: ...N, O, P, Q, R, S, T, U...

Bis später, Karin

0 Punkte
Beantwortet von jelena Experte (1k Punkte)

Hallo Karin, ich habe das falsche Bild geschickt Entschuldigung, dass ich deine Zeit vergeudet habe. Jetzt zwei neue Bilder laut code. Danke

       

...