Sub sortiere() Application.ScreenUpdating = False Columns("A:A").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Application.Goto Reference:=Range("A2"), Scroll:=True End Sub
Die Tabelle sollte aber nach den Dateinamen sortiert werden unabhängig aus welchem Verzeichnis sie kommen, also so: D:\1_Mydaten_Aktiv\Office\Excel\Sport\Mgmt\4.2_WTrain.xls D:\1_Mydaten_Aktiv\Office\Excel\Sport\G\5.0_Zählsystem_V1.xlsm D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\7.1_Adressen.xlsx D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\7.2_B_2015.xlsx D:\1_Mydaten_Aktiv\Office\Excel\Aktuell\8.0_S_Tabelle.xls usw...
Hat jemand eine Idee ob und wie das geht? Vielen Dank!
Hi! Du kannst Dir doch die Formel temporär in die erste freie Spalte schreiben (per VBA), dann sortieren (per VBA) und dann die Hilfsspalte wieder löschen (per VBA). Wenn Du vorher Application.ScreenUpdating = False setzt, kriegst Du noch nichtmal was davon mit. Ich schreibe gleich mal den Code und stelle die Datei hier ein.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
und dann einen Schritt weiter gehe sehe ich in der "Übtemp"-Spalte das sortierte Ergebnis des abgeschnittenen Teilstrings. Abschließend erfolgt aber keine Änderung in der ersten Spalte, d.h. es wird nichts zurück geschrieben.
08.11.2015, 17:51 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2015, 17:53 von RPP63.)
Hi! Ich hatte den Code sowie die eingestellte Datei nochmal geändert (um 16:11). Ich hatte versehentlich eine falsche (frühere) Version hochgeladen. Einzige Änderung: .UsedRange.Sort statt .Columns(ErsteFreieSpalte).Sort
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28 • sharky51
08.11.2015, 19:17 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2015, 19:18 von snb.)
Alternative:
Code:
Sub M_snb() sn = Tabelle1.Cells(1).CurrentRegion
With CreateObject("System.Collections.ArrayList") For j = 2 To UBound(sn) .Add "_" & Split(sn(j, 1), "\")(UBound(Split(sn(j, 1), "\"))) & sn(j, 1) Next .Sort Tabelle1.Cells(1).CurrentRegion.Columns(1).Offset(1).Resize(UBound(sn) - 1) = Application.Transpose(.toarray) End With
Tabelle1.Columns(1).Replace "_*D:", "D:" End Sub
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28 • sharky51