Dosya içerisindeki en en son eklenen excel sayfasına köprü

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
6 Kasım 2006
Mesajlar
9
Excel Vers. ve Dili
2003 English
Klasör içerisindeki en en son eklenen excel sayfasına köprü

Merhaba
Bu işlemin Makro yardımı ile yapılabileceğini düşünerek
buraya yazıyorum.

Sorum şu arkadaşlar;
Excelde ilgili linke tıklayınca bir doysa içerisindeki excel sayfalarından en son eklenenin gelmesini istiyorum.
Örneğin bir personal listesi mevcut ancak tek liste excel sayfasından güncellenmek yerine
değişiklik aynı xls üzerinde yapılıp (persliste-S1D1 gibi biri isimle) klasöre farklı kaydediliyor, İlk xls perslist-S1D0.
Bir kişi listenin en güncel halini görmek istediğinde tıklayınca personel dosyasındaki en son eklenen liste çağrılacak...

Nasıl yapabilirim, daha önce böyle bir çalışma yapmış arkdaşlar tecrübelerini paylaşırsa sevinirim.

Umarım sorunu iyi ifade edebildim.
Örnek dosya ektedir. Örnek olsun diye sadece bir klasör ve linkli örnek gönderiyorum.
Teşekkürler...
 

Ekli dosyalar

Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin. personel klasörünüzün yolunun "c:\personel" olduğu kabul edilmiştir. Ayrıca personel klasöründe sadece "perslist-S1D..." şeklinde artan isimle sıralandırılan dosyalar bulunmalıdır.

Kod:
Sub dosyaac()
dosyasayisi = CreateObject("Scripting.FileSystemObject").GetFolder("c:\personel").Files.Count
Workbooks.Open Filename:="c:\personel\perslist-S1D" & dosyasayisi - 1 & ".xls"
End Sub
 
Katılım
6 Kasım 2006
Mesajlar
9
Excel Vers. ve Dili
2003 English
Aşağıdaki kodu deneyin. personel klasörünüzün yolunun "c:\personel" olduğu kabul edilmiştir. Ayrıca personel klasöründe sadece "perslist-S1D..." şeklinde artan isimle sıralandırılan dosyalar bulunmalıdır.

Kod:
Sub dosyaac()
dosyasayisi = CreateObject("Scripting.FileSystemObject").GetFolder("c:\personel").Files.Count
Workbooks.Open Filename:="c:\personel\perslist-S1D" & dosyasayisi - 1 & ".xls"
End Sub
üstad bu algoritma iş görebilir ama dosya isimlendirme daha farklı sadece D sonundaki sayı değişmiyo S ninde değişebiliyor,(art ibirde tarih ekleniyormuş:S1D0-92005 oluyormuş dosya adının sonu)
Getfolder methoduyla klasör içine en son koplanan dosyayı açmanın yolunu arıyorum ben
bu şekilde isimlerle ugrasmadan en son oluşturulan dosyası açabiliriz?
Forumda aradım ancak benim istediğim gibi bir mesaj bulamadım
Yardımcı olacak arkdaşlara şimdiden teşekkür
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu durumda klasöre kaydedilecek dosyaların oluşturulma zamanlarını karşılaştıran bir yöntemi tercih etmek doğru olacaktır. Aşağıdaki gibi deneyebilirsiniz.

Kod:
Sub sondosyayiac()
Set klasor = CreateObject("Scripting.FileSystemObject").GetFolder("c:\personel")
For Each dosya In klasor.Files
If dosya.DateCreated > oncekidosya Then
dosyayolu = dosya.path
oncekidosya = dosya.DateCreated
End If
Next
Workbooks.Open dosyayolu
End Sub
Kaynak: http://www.dailydoseofexcel.com/archives/2009/05/01/opening-the-newest-file-in-a-folder-with-vba/
 
Katılım
6 Kasım 2006
Mesajlar
9
Excel Vers. ve Dili
2003 English
Sub dosyaac()
Dim dizin, BakilanDosya, EnSonDosya
Set dizin = CreateObject("Scripting.FileSystemObject").GetFolder("c:\").Files
tarih = DateValue("1.1.1")
For Each BakilanDosya In dizin
If BakilanDosya.datecreated > tarih And Right(BakilanDosya.Name, 4) = ".xls" Then
Set EnSonDosya = BakilanDosya
tarih = BakilanDosya.datecreated
End If
Next
If Not IsEmpty(EnSonDosya) Then Workbooks.Open EnSon

Kodu işimi gördü, cevap veren herkese çok teşekkürler
kolay gelsin
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst