Microsoft Excel

Herbers Excel/VBA-Archiv

Alphabetische Sortierung in VBA

Betrifft: Alphabetische Sortierung in VBA von: Thomas
Geschrieben am: 13.08.2014 13:51:08

Hallo zusammen,

ich weiß, dass es einige Foren zu dem Thema gibt, allerdings habe ich keins gefunden indem mein Problem behandelt wird. Falls es doch eins gibt, bitte ich das zu entschuldigen.

Ich versuche meinen als Tabelle formatierten Bereich beim Starten der Anwendung alphabetisch zu sortieren (nach Spalte A, die allerdings eine Überschrift hat die nicht berücksichtigt werden sollte).

  • 
    
    
    Private Sub UserForm1_Activate()
    
    Worksheets("Datenbank").Activate
    ActiveSheet.Range("Tabelle2").Select
    With ActiveSheet.Range
    .Range("Tabelle2").Sort _
             Key1:=.Range("Tabelle2"), Order1:=xlAscending, _
             Header:=xlGuess, orderCustom:=1, _
             MatchCase:=False, Orientation:=xlTopToBottom, _
             DataOption1:=xlSortNormal
       End With
    End Sub



  • Wo genau liegt mein Fehler? Ist es überhaupt möglich einen Bereich der als Tabelle formatiert ist alphabetisch zu sortieren?

    Vielen Dank schonmal an die Helfer!

      

    Betrifft: header:=xlYes owT von: Rudi Maintaire
    Geschrieben am: 13.08.2014 13:59:13




      

    Betrifft: AW: Alphabetische Sortierung in VBA von: Daniel
    Geschrieben am: 13.08.2014 14:01:27

    Hi
    das funktioniert schon.
    du sprichst aber deine Objekte nicht immer richtig an.
    Als Key musst du eine Zelle des zu sortierenden Bereichs angeben, du gibst aber die komplette Tabelle als Sortierkriterium an und das geht nicht.

    probiere es mal so:

    With ActiveSheet.Range("Tabelle2")
         .Sort _
             Key1:=.Cells(1, 1), Order1:=xlAscending, _
             Header:=xlyes, orderCustom:=1, _
             MatchCase:=False, Orientation:=xlTopToBottom, _
             DataOption1:=xlSortNormal
    End With
    Gruß Daniel


      

    Betrifft: AW: Alphabetische Sortierung in VBA von: Klaus M.vdT.
    Geschrieben am: 13.08.2014 14:03:42

    Hallo Thomas,
    die benannten Tabellen in XL2010 haben doch schon eine sortieren-Funktion an Board:


    Wenn ich eben diese durch den Rekorder laufen lasse, kommt folgendes funktionales Makro heraus:

    Sub Makro1()
    '
    ' Makro1 Makro
    '
    
    '
        ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort.SortFields. _
            Clear
        ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort.SortFields. _
            Add Key:=Range("Tabelle1[[#All],[Spalte1]]"), SortOn:=xlSortOnValues, _
            Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        With ActiveWorkbook.Worksheets("Tabelle1").ListObjects("Tabelle1").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    Noch eben die SELECTS raus und ein WIDTH-Rahmen für die Lesbarkeit:
    Sub TabelleSortieren()
        With Worksheets("Tabelle1").ListObjects("Tabelle1").Sort
            .SortFields.Clear
            .SortFields.Add Key:=Range("Tabelle1[[#All],[Spalte1]]"), SortOn:=xlSortOnValues, Order: _
    =xlAscending, DataOption:=xlSortTextAsNumbers
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    Und dann läuft das, oder nicht?

    Grüße,
    Klaus M.vdT.


      

    Betrifft: AW: Alphabetische Sortierung in VBA von: Thomas
    Geschrieben am: 13.08.2014 14:27:22

    Hallo Klaus M.vdT.,

    auf die Idee bin ich natürlich nicht gekommen :(
    Jetzt funktioniert es! :)

    Vielen Dank!


      

    Betrifft: Danke für die Rückmeldung! owT. von: Klaus M.vdT.
    Geschrieben am: 13.08.2014 14:39:45

    .


     

    Beiträge aus den Excel-Beispielen zum Thema "Alphabetische Sortierung in VBA"