22/05/2020, 10:58
Klasördeki Son Eklenen Dosyayı Getirmek
22/05/2020, 11:07
accessman
ilk mesajdaki kodun son hali şöyle oldu
8. mesajdaki kod içerisine 2. mesajdaki kodu entegre etsek
yani 1.kod ile bulunan dosya aynı zamanda dosya adındaki tarih olarak da son tarih ise
şartını nasıl koyabiliriz
Private Sub findLastExcel()
Dim lastFile As String
lastFile = newestFile("C:\_egitim\", "*.xls", True)
If (InStr(lastFile, ",") > 0) Then
Me.txtLastFile = Split(lastFile, ",")(0)
Me.txtLastFile.ControlTipText = Split(lastFile, ",")(1)
Else
Me.txtLastFile = lastFile
End If
End Sub
Function newestFile(Directory As String, Optional FileSpec As String = "*.*", Optional bringDate As Boolean = False) As String
On Error GoTo Err_hata
Dim result As String
result = ""
Dim FileName As String
Dim MostRecentFile As String
Dim MostRecentDate As Date
FileName = Dir(Directory & FileSpec)
If FileName <> "" Then
MostRecentFile = FileName
MostRecentDate = FileDateTime(Directory & FileName)
Do While FileName <> ""
If FileDateTime(Directory & FileName) > MostRecentDate Then
MostRecentFile = FileName
MostRecentDate = FileDateTime(Directory & FileName)
End If
FileName = Dir
Loop
End If
result = MostRecentFile
If (bringDate) Then result = result & "," & MostRecentDate
Exit_kod:
newestFile = result
Exit Function
Err_hata:
result = ""
MsgBox Err.Description
Resume Exit_kod
End Function
8. mesajdaki kod içerisine 2. mesajdaki kodu entegre etsek
yani 1.kod ile bulunan dosya aynı zamanda dosya adındaki tarih olarak da son tarih ise
şartını nasıl koyabiliriz
22/05/2020, 11:37
accessman
şu üç dosya birbirinin kopyası
1. mesajdaki kod değiştirme tarihine göre son dosyayı getiriyor
ama tarihleri aynı ise alfabetik olarak ismi en küçük olanı getiriyor
yani burada 09.05.2020 yi getiriyor. bu durumda
isimdeki tarihe göre son dosyayı bulmak daha güvenli
1. mesajdaki kod değiştirme tarihine göre son dosyayı getiriyor
ama tarihleri aynı ise alfabetik olarak ismi en küçük olanı getiriyor
yani burada 09.05.2020 yi getiriyor. bu durumda
isimdeki tarihe göre son dosyayı bulmak daha güvenli
22/05/2020, 11:53
alicimri
Sayın @accessman Kusura bakmayın sorunuzu iyi okumadığımdan ben sadece en büyük tarihli dosyayı bulamaya çalıştığınızı anladım.
22/05/2020, 13:09
accessman
son mesajı üzerinize alınmayın
kendimce yeni keşfettiğim şeyleri paylaşıyorum
sizin yazdığınız doğru elbet ama şu kod da isimde geçen tarihe göre en büyük tarihli dosyayı buluyor
kendimce yeni keşfettiğim şeyleri paylaşıyorum
sizin yazdığınız doğru elbet ama şu kod da isimde geçen tarihe göre en büyük tarihli dosyayı buluyor
Private Function lastDateFile(Directory As String, criteria As String, Optional FileSpec As String = "*")
Dim path As String
Dim count As Long
Dim number As Long
path = Directory & criteria & " ("
count = 0
Do While Len(Dir(path & Format(Now() - count, "dd.mm.yyyy") & ")." & FileSpec)) = 0
number = Len(Dir(path & Format(Now() - count, "dd.mm.yyyy") & ")." & FileSpec))
count = count + 1
Loop
lastDateFile = path & Format(Now() - count, "dd.mm.yyyy") & ")." & FileSpec
End Function
22/05/2020, 13:51
alicimri
Kod:
Public Sub TestMe()
Dim liste As Object
Set liste = CreateObject("System.Collections.ArrayList")
Dim dizi As Variant
dizi = Split("EGITmM (20.05.2020).XLS,EGITmM (11.05.2020).XLS,EGITmM (09.05.2020).XLS,EGITmM (13.05.2020).XLS", ",")
Dim cnt As Long
For cnt = LBound(dizi) To UBound(dizi)
liste.Add CDbl(CDate(Mid(dizi(cnt), 9, 10)))
Next cnt
liste.Sort
ReDim dizi(liste.Count)
For cnt = liste.Count - 1 To 0 Step -1
liste(cnt) = liste.Item(cnt)
MsgBox "EGITmM (" & CDate(liste(cnt)) & ").XLS"
Next cnt
End Sub