Ich lese mit diesem Code Dateien ein, die von 1 bis 200 nummeriert sind.
Da aber ab und an in dem Ordner nicht alle 200, sondern nur ein Teil des ganzen sich befindet, kann es vorkommen, dass die aktuellste Datei die Datei 3 ist. Es befinden sich dann z.B. Dateien in der Nummerierung 150-3 da. Zur Zeit liest er dann nur die letzten drei in diesem Beispiel ein. Ich dachte, da wäre es sinnvoller nach Änderungsdatum der Dateien einzulesen. Habe aber leider keine Ahnung wie das funktioniert. Kann mir da jemand helfen?
Der Code:
Private Sub Daten_einlesen_Click()
Application.DisplayAlerts = False
Dim strPfad As String
Dim strDateiname As String
Dim lngAbZeile As Long
Dim lngFileCnt As Long
Dim wksDaten As Worksheet
Dim lngLetzteZeile As Long
Set wksDaten = ThisWorkbook.Worksheets("Daten")
Application.ScreenUpdating = False
strPfad = Sheets("Aktionen").Range("K10")
If Right(strPfad, 1) "\" Then strPfad = strPfad & "\"
strDateiname = Dir(strPfad & "dtaold*.dif")
If strDateiname = "" Then Exit Sub
lngFileCnt = CInt(Mid(Split(strDateiname, ".")(0), 7))
Do While strDateiname ""
Workbooks.Open Filename:=strPfad & strDateiname
lngAbZeile = wksDaten.Cells(wksDaten.Rows.Count, 1).End(xlUp).Row + 1
Workbooks(strDateiname).Sheets(1).Range("A3:AC1001").Copy
wksDaten.Cells(lngAbZeile, 1).PasteSpecial
Application.CutCopyMode = False
Workbooks(strDateiname).Close
lngFileCnt = lngFileCnt + 1
If lngFileCnt = 201 Then lngFileCnt = 1
strDateiname = Dir(strPfad & "dtaold" & Trim(Str(lngFileCnt)) & ".dif")
lngLetzteZeile = wksDaten.Cells(wksDaten.Rows.Count, 1).End(xlUp).Row
wksDaten.Range(wksDaten.Cells(lngAbZeile, 30), wksDaten.Cells(lngLetzteZeile, 30)).FormulaR1C1 _
_
= "=(RC29-295.95)/208.44"
Loop
End Sub
Vielen Dank.Gruß
SKY