Clever-Excel-Forum

Normale Version: VBA Problem mit gleichnamigen Tabellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

leider habe ich über die Sufu weder hier noch bei Google was gefunden.
Für die Erstellung einer Telefonliste habe ich ein Makro, das soweit ganz gut funktioniert und die Daten aus einer .xlsx Datei zieht. In diese Datei werden händisch die Daten per .csv importiert und die Tabelle als "Export" abgespeichert und die alte Exportabelle wird gelöscht. Das allerdings führt das Problem herbei, dass die Tabellen im Vba als "Export__2; Export__3" usw... erkannt werden, was er mir nicht möglich macht weitere Makros zu schreiben (z.B. dass die CSV Datei per Makro importiert wird und selbstständig die Liste wie gewollt sortiert und Daten löscht) da ich eben die Tabelle nicht ansprechen kann. Die Tabelle nur mit "Export" anzusprechen brachte auch kein Erfolg, was bei meinem eigentlichen Kopiermakro (also dass die Daten aus der Export-Tabelle in die Telefonliste kopiert werden) keine Probleme macht.

Mein bisheriger Lösungsversuch war es die Tabelle mit "Export???" und auch "Export*" anzusprechen nur ging das leider nicht.

Anschließend noch ein aufgezeichnetes Makro, das auch funktionierte, bis ich erneut eine .csv importiert habe

Sub sortieren()
Workbooks("Export.xlsx").Worksheets("Export").Activate

  ActiveWorkbook.Worksheets("Export").ListObjects("Export__5").Sort.SortFields. _
        Clear
ActiveWorkbook.Worksheets("Export").ListObjects("Export__4").Sort.SortFields. _
        Add2 Key:=Range("Export__4[[#All],[Nachname]]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Export").ListObjects("Export__4").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub


Vielleicht kann mir einer von euch VBA-Pros weiterhelfen :19:

Dankeschön & Grüße,
Mario
Hallöchen,

wenn Du immer die letzte ansprechen willst dann z.B. auch so:

MsgBox ActiveSheet.ListObjects(ActiveSheet.ListObjects.Count).Name
Hey,

danke für deine Antwort ich muss aber doch nochmal nachfragen Blush

Wie genau soll ich das in meinem Code einbauen? Ich bekomme immer einen Fehler Undecided

Danke & Gruß,
Mario
Hallöchen,

relevant ist dieser Teil

ActiveSheet.ListObjects.Count

den nimmst Du statt des fest programmierten Namen, unter Beachtung des von Dir verwendeten Bollattnamens

also dann

ActiveWorkbook.Worksheets("Export").ListObjects(Worksheets("Export").ListObjects.Count).Sort.SortFields. _
Clear