Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

LastModified und Einlesen!

LastModified und Einlesen!
01.02.2017 14:57:29
Nilo
Moin zusammen,
kann mir hier jemand das Makro vervollständigen !?
Ich möchte immer die jüngste .txt Datei einlesen, wobei der Name
dann ja egal ist!?
Es liegen mehrere .txt im Ordner!!!
Das Einlesen selbst funzt ohne Probleme sofern ich in I1
einen Namen als Suchbegriff eintrage!!! Das soll ja wegfallen!!!
Danke schon mal im Voraus
MfG
Nilo
Sub lastmod()
Dim strVerzeichnis As String
Dim StrDatei As String
Dim I As Integer
Dim StrTyp As String
Dim Dateiname As String
Dim Dateiname_neu As String
Dim Zeit As Date
strVerzeichnis = "\\Ordner\Ordner\Ordner\" 'UNC Pfad
StrTyp = "*.txt"
Dateiname = Dir(strVerzeichnis & StrTyp)
'hier beibt er stehen "falsche Anzahl an Argumenten etc." ?
Dateiname_neu = Dateiname
Zeit = FileDateTime(strVerzeichnis & Dateiname)
Do While Dateiname  ""
If Zeit 
Sub Import()
Dim arr
Dim Datei
Dim fso
Dim L As Long
Dim Tmp As Variant
Dim vnt_Ausgabe As Variant
Dim i As Integer
Dim Str_String As String
Dim strDatei As String
strDatei = Sheets("Daten").Range("I1")
'hier soll geändert werden, es soll immer die Datei mit dem jüngsten "dateLastModified"  _
eingelesen werden siehe oben "lastmod"?
Application.ScreenUpdating = False
With Sheets("Daten")
.Range("A2:G40000").ClearContents
End With
'txt auslesen
Set fso = CreateObject("Scripting.FilesystemObject")
Set Datei = fso.OpentextFile("\\Ordner\Ordner\Ordner" & "\" & strDatei & ".txt") 'Anpassen
Str_String = Datei.readall
Datei.Close
arr = Split(Str_String, vbCrLf)
ReDim vnt_Ausgabe(UBound(arr), 10)
For L = 0 To UBound(arr)
Tmp = Split(arr(L), "")
For i = 0 To UBound(Tmp)
vnt_Ausgabe(L, i) = Tmp(i)
Next
Next
'Ausgeben. Anpassen.
Sheets("Daten").Range("A2:A40000").ClearContents
Sheets("Daten").Range("A2").Resize(UBound(vnt_Ausgabe) + 1, UBound(vnt_Ausgabe, 2)) =  _
vnt_Ausgabe
Application.ScreenUpdating = True
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: halbe Antwort
01.02.2017 15:14:32
Fennek
Hallo,
versuche {windows-Taste} + r: cmd.exe
Dann eintippen: dir /?
und die Optionen für das Sortieren nach dem Datum merken.
Damit kann das ganze Verzeichnis auch direkt aus VBA gelesen werden.
mfg
AW: und mit halben Wissen doch noch geschaft :)
02.02.2017 10:22:20
Nilo

Sub lastmod()
Dim AktuellstesDatum As Date
Dim NeuesteDatei As String
Dim FS As Object
Dim Drv As Object
Dim Datei As Object
AktuellstesDatum = DateValue("1.1.1900")
NeuesteDatei = ""
Set FS = CreateObject("scripting.filesystemobject")
Set Drv = FS.GetFolder("\\Ordner\Ordner\Ordner")
For Each Datei In Drv.Files
If Datei.DateLastModified > AktuellstesDatum Then
NeuesteDatei = Datei.Name
AktuellstesDatum = Datei.DateLastModified
End If
Next Datei
Range("I1").Value = Left(NeuesteDatei, 17)
Call BlaBlaImport
End Sub
Besten Dank trotzdem an alle lesenden und tüftelnden ;)
Gruß
Nilo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige