Microsoft Excel

Herbers Excel/VBA-Archiv

Makro zum Sortieren | Herbers Excel-Forum


Betrifft: Makro zum Sortieren von: Jonathan
Geschrieben am: 14.01.2010 23:32:41

Hey,

könnte mir jemand bitte, bitte mein aufgezeichnetes MAkro überarbeiten?

Ich habe die Sortierung meines Sheets "Daten" aufgezeichnet, diese sieht aber absolut unübersichtlich aus. Würde mich freuen, wenn Ihr mir dieses kurz anpassen könntet?

Danke!!!!!

    ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort.SortFields.Clear
    
    ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "B2:B210"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember" _
        , DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "F2:F210"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _
        "Übertrag,Einnahme,Ausgabe,Rückstellungen", DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort.SortFields.Add Key:=Range( _
        "G2:G210"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply

  

Betrifft: AW: Makro zum Sortieren von: Josef Ehrensberger
Geschrieben am: 14.01.2010 23:42:38

Hallo Jonathan,

natürlich ungetestet.

With ActiveWorkbook.Worksheets("Daten").AutoFilter.Sort
  With .SortFields
    .Clear
    .Add Key:=Range("B2:B210"), SortOn:=xlSortOnValues, _
      Order:=xlAscending, DataOption:=xlSortNormal, _
      CustomOrder:="Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember"
    .Add Key:=Range("F2:F210"), SortOn:=xlSortOnValues, _
      Order:=xlAscending, DataOption:=xlSortNormal, _
      CustomOrder:="Übertrag,Einnahme,Ausgabe,Rückstellungen"
    .Add Key:=Range("G2:G210"), SortOn:=xlSortOnValues, _
      Order:=xlAscending, DataOption:=xlSortNormal
  End With
  .Header = xlYes
  .MatchCase = False
  .Orientation = xlTopToBottom
  .SortMethod = xlPinYin
  .Apply
End With



Gruß Sepp



  

Betrifft: AW: Makro zum Sortieren von: Jonathan
Geschrieben am: 15.01.2010 00:16:03

Super, danke!

Das ist echt so super nett von Euch, dass Ihr so schnell und fachmännisch Fragen beantwortet - danke!

Ist es irgendwie möglich, den Bereich der Tabelle auf die letzte Zeile anzupassen?
Habe ds hier gefunden:

(Cells.SpecialCells(xlLastCell).Row

weiß aber nicht, wie ich das einbinden muss.....


  

Betrifft: AW: Makro zum Sortieren von: Josef Ehrensberger
Geschrieben am: 15.01.2010 00:22:26

Hallo Jonathan,

meinst du so?

Dim lngLast As Long

With ActiveWorkbook.Worksheets("Daten")
  lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
  With .AutoFilter.Sort
    With .SortFields
      .Clear
      .Add Key:=Range("B2:B" & CStr(lngLast)), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal, _
        CustomOrder:="Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember"
      .Add Key:=Range("F2:F" & CStr(lngLast)), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal, _
        CustomOrder:="Übertrag,Einnahme,Ausgabe,Rückstellungen"
      .Add Key:=Range("G2:G" & CStr(lngLast)), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
    End With
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With
End With



Gruß Sepp



  

Betrifft: AW: Makro zum Sortieren von: Jonathan
Geschrieben am: 15.01.2010 00:34:17

Scheint zu funktionieren! ;-)

Danke!!

LG


Beiträge aus den Excel-Beispielen zum Thema "Makro zum Sortieren"