Microsoft Excel

Herbers Excel/VBA-Archiv

Query Tabellen Daten von anderem Sheet sortieren?


Betrifft: Query Tabellen Daten von anderem Sheet sortieren? von: Thomas Hebes
Geschrieben am: 28.02.2019 07:38:13

Liebes Forum,

ich lese schon nun schon seit Jahren im Forum mit und habe hier diverse Ideen und Lösungen gefunden. Aktuell scheitere ich gerade am VBA Problem, welches ich nicht gelöst bekomme (bzw. nicht elegant).

Das Setting ist folgendes:

  • Ein Worksheet wird zum Importieren von Oracle Daten (ODBC) verwendet. Diese werden als Tabelle gelistet

  • in einem zweiten Worksheet wurde die Tabelle verlinkt und hier soll der Nutzer die Möglichkeiten haben, die Daten zu Filtern, zu sortieren...

  • Die Tabellen sind über Ihre Namen verlinkt (keine absoluten Spalten, da die größe sich verändert


  • Wenn ich die Import Tabelle in normale Zeilen verpacke, kann ich die "Ansichtstabelle" wie _
    folgt sortieren:
    
        ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=7
        Range("Tabelle2[#Headers]").Select
        ActiveWorkbook.Worksheets("Bereinigt-Aufträge Gesamt").ListObjects("Tabelle2"). _
            Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Bereinigt-Aufträge Gesamt").ListObjects("Tabelle2"). _
            Sort.SortFields.Add Key:=Range("Tabelle2[[#All],[Sort]]"), SortOn:= _
            xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        With ActiveWorkbook.Worksheets("Bereinigt-Aufträge Gesamt").ListObjects( _
            "Tabelle2").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("A7").Select
    End Sub

    Wenn ich die Verweise absolut mache (=Tabelle_Import[@AUFTRAG]) wird beim Sortieren natürlich wieder die richtige Spalte genommen. Wenn ich mittels VBS versuche die andere Tabelle (ohne Tabellenblatt zu wechseln) zu sortieren, scheitere ich.

    Meine Code Idee war:
    
    
        With Worksheets("Import")
         .ListObjects("Tabelle_Import").Range.SortFields.Add Key:=Range("Tabelle_Import[[#All],[ _
    Sort]]"), SortOn:= _
           xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
            With Worksheets("Import")
         .ListObjects("Tabelle_Import").Range.Select.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Range("A7").Select
    End With
    

    Über Ideen und oder andere elegante Lösungen würde ich mich freuen!

    Liebe Grüße und Danke!!!

    Beiträge aus dem Excel-Forum zum Thema "Query Tabellen Daten von anderem Sheet sortieren?"