Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1544to1548
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien eines Ordners nach Zeit sortiert verarbeit

Dateien eines Ordners nach Zeit sortiert verarbeit
07.03.2017 15:22:02
joko0803
Liebe Excel-Experten,
ich hatte vor einiger Zeit hier ein Problem eingestellt, das ich mit Eurer Hilfe lösen konnte. Gerne würde ich das nun "rund" machen, weiß aber nicht im Geringsten wie der Code dazu aussehen könnte.
Problem: Ich habe ca. 25 bis 40 Dateien (.xls in der Version 2) in einem Verzeichnis, stehen, die ich zu einer einzigen Datei zusammenfüge indem ich die Blätter daraus übernehme.
Leider übernimmt Excel die Dateien in der alphabetischen Reihenfolge was zu einem erheblichen Aufwand nach der Erstellung der neuen Arbeitsmappe führt. Das würde ich gerne mit eurer Hilfe ändern.
Wäre jemand von Euch bereit mir einen Code zur Verfügung zu stellen, der die Einlese der Dateien in einer Sortierreihenfolge nach Datum/Zeit (auch Uhrzeit alleine wäre schon prima) steuert?
Hier Der Code wie ich ihn zur Zeit verwende (wegen meiner mangelhalften VBA-Kenntnisse kein Anspruch auf Perfektion):
Sub Blaetter_in_neue_Datei_verschieben()
Dim strDatnam As String
Dim wb As Workbook
Dim strPfad As String
Dim rngEinfüg As Range
Dim Ziel As Workbook
'Pfadnamen anpassen
strPfad = "c:\temp\tnp\"
strDatnam = Dir(strPfad & "*.xls")
Set Ziel = ActiveWorkbook
Do While strDatnam  ""
Set wb = Workbooks.Open(strPfad & strDatnam)
strDatnam = Dir
Loop
Set rngEinfüg = Nothing
Set wb = Nothing
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dir /od
07.03.2017 15:29:18
Fennek
Hallo,
der "dir"-Befehl läßt Schalter zum Sortiere der Ausgabe zu:

Hilfe im cmd-Fenster: dir /?
nach Zeit sortiert
älteste zuerst:  dir /od
neueste zuerst: dir /o-d
mfg
AW: dir /od
07.03.2017 17:12:24
joko0803
Danke, Fennek.
Wo im Code soll dieses dir /od dann stehen?
AW: dir /od
07.03.2017 17:17:27
Fennek
Hallo,
versuche es mit snb's "Supercode":

Sub M_snb_dir()
sn = Split(CreateObject("wscript.shell").exec("cmd /c dir ""c:\temp\*.xls"" /b/od").stdout. _
readall, vbCrLf)
For Each d In sn
Debug.Print d
Next d
End Sub

nebenbei
07.03.2017 18:32:15
Michael
Hi,
so sehr mir diese Formulierung gefällt, ist vielleicht der Hinweis angebracht, daß das DOS-Teil Umlaute und so Zeug nicht richtig rüberbringt - da braucht's z.B. noch die gute API zum konvertieren:
Private Declare Function OemToCharA Lib "user32.dll" _
(ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Public Function ASCIItoANSI(ByVal Text As String) As String
Call OemToCharA(Text, Text)
ASCIItoANSI = Text
End Function
Sub M_snb_dir()
Dim s$, a, d
' hier mit Schalter /s für Unterverzeichnisse
s = ASCIItoANSI(CreateObject("wscript.shell"). _
exec("cmd /c dir ""c:\temp\*.xls*"" /s/b/od") _
.stdout.readall)
a = Split(s, vbCrLf)
Debug.Print UBound(a) ' bei -1 war der String leer
For Each d In a
Debug.Print d
Next d
End Sub
Gruß,
M.
Anzeige
AW: dir /od
09.03.2017 16:53:35
joko0803
Hallo, Fennek, Michael (der Alte),
eure Vorschläge arbeiten einfach grandios.
Vielen herzlichen Dank.
Und weiterhin viel Erfolg euch beiden.
John

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige