Methode Range für Objekt _global fehlgeschlagen bei Sortiermakro

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von msprivat.

    Methode Range für Objekt _global fehlgeschlagen bei Sortiermakro

    Hallo zusammen,

    ich habe folgendes Problem in Excel. Ich möchte gerne ein Makro, welches die z.B die Datumsspalte einer aktiven Tabelle sortiert, erstellen und dann einem Steuerelement zuweisen. Bei der Ausführung des Codes gibt Excel mir den o.a. Fehler " Die Methode Range ist für das Objekt fehlgeschlagen" zurück. Der Code sieht wie folgt aus:

    Quellcode

    1. Dim activeTable As String
    2. Dim Table_1 As Object
    3. activeTable = ActiveSheet.ListObjects(1)
    4. Set Table_1 = ActiveSheet.ListObjects(1)
    5. ActiveSheet.Unprotect
    6. ActiveSheet.ListObjects(activeTable).ShowAutoFilterDropDown = True
    7. With ActiveWorkbook.Worksheets(ActiveSheet.Name).ListObjects(activeTable).Sort
    8. .SortFields.Clear
    9. .SortFields.Add2 Key:=Range("Table_1[[#Headers],[#Data],[Termin]]"), _
    10. SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal


    In Zeile 9 tritt nun der Fehler auf. Ich habe schon versucht die aktuell aktive Tabelle als Objekt zu definieren, allerdings hat das nicht weitergeholfen. ?(

    Hat jemand einen Tipp der mir hier weiterhelfen könnte? ^^

    Gruß

    DXD4

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DXD4“ ()

    Meintest du sowas:

    Gruß
    Michael ;)

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub sort_datum()
    3. '
    4. Dim my_sh As Worksheet
    5. Dim rng_key1, rng_key2 As Range
    6. Dim Lrow, Lcol As Integer
    7. Const ColDat = 1 'Column with Date
    8. Const ColTxt = 2 'Column with text
    9. Const RowHea = 1 'Row Header
    10. Const RowSta = 2 'Row Start
    11. 'Worksheet
    12. Set my_sh = ThisWorkbook.Worksheets("MySheet")
    13. With my_sh
    14. Lrow = .Cells(Rows.Count, ColDat).End(xlUp).Row
    15. Lcol = .Cells(RowHea, 1000).End(xlToLeft).Column
    16. Set rng_key1 = Range(.Cells(RowSta, ColDat), .Cells(Lrow, ColDat))
    17. Set rng_key2 = Range(.Cells(RowSta, ColTxt), .Cells(Lrow, ColTxt))
    18. .Sort.SortFields.Clear
    19. .Sort.SortFields.Add2 Key:=rng_key1, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    20. .Sort.SortFields.Add2 Key:=rng_key2, SortOn:=xlSortOnValues, Order:=xlAscending, _
    21. CustomOrder:="Headers,Data,Termin", DataOption:=xlSortNormal
    22. End With
    23. With my_sh.Sort
    24. .SetRange Range(Cells(RowHea, ColDat), Cells(Lrow, Lcol))
    25. .Header = xlYes
    26. .MatchCase = False
    27. .Orientation = xlTopToBottom
    28. .SortMethod = xlPinYin
    29. .Apply
    30. End With
    31. Set my_sh = Nothing
    32. Set rng_key1 = Nothing
    33. Set rng_key2 = Nothing
    34. End Sub