Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Problem mit gleichnamigen Tabellen
#1
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
Antwortento top
#2
Hallöchen,

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

MsgBox ActiveSheet.ListObjects(ActiveSheet.ListObjects.Count).Name
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
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
Antwortento top
#4
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
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste