En son eğik çizgiden sonrakileri alan formül

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
538
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba değerli hocalarımız,

C:\Users\hakki\Desktop\ana klasör\resim.jpg

Üstteki dizin adresindeki, en sondaki resim.jpg'yi alacak formül oluşturabilir miyiz?

Hatta eğer yapılabiliyorsa hem formül hem de makrolu halini denemek isterim.

Veriler A sütununda ve A2'den itibaren başlıyor.

Teşekkürler.

(Ekleme: dosyalar sadece jpg değildir, yukarıdaki örnek bir dizin adresidir)
 
Son düzenleme:
Katılım
11 Temmuz 2024
Mesajlar
40
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba değerli hakki83;
Excel formülleri, dosya sistemine erişip klasörlerdeki dosyaları listeleyemez veya işlem yapamaz. Bu nedenle, bu işlemi gerçekleştirmek için bir VBA makrosu kullanmamız gerekecek.

Kod:
Sub EnSonDosyayiEkle()
    Dim klasorYolu As String
    Dim fso As Object
    Dim klasor As Object
    Dim dosya As Object
    Dim enSonDosya As Object
    Dim sonDegistirilme As Date
    Dim satirNo As Long

    ' Klasör yolunu ayarlayın
    klasorYolu = "C:\Users\hakki\Desktop\ana klasör\"

    ' FileSystemObject nesnesini başlatın
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set klasor = fso.GetFolder(klasorYolu)

    ' Değişkenleri başlatın
    sonDegistirilme = DateSerial(1900, 1, 1)
    
    ' Klasördeki her dosyayı kontrol edin
    For Each dosya In klasor.Files
        If dosya.DateLastModified > sonDegistirilme Then
            Set enSonDosya = dosya
            sonDegistirilme = dosya.DateLastModified
        End If
    Next

    If Not enSonDosya Is Nothing Then
        ' A sütunundaki bir sonraki boş satırı bulun (A2'den itibaren)
        satirNo = Cells(Rows.Count, "A").End(xlUp).Row + 1
        If satirNo < 2 Then satirNo = 2 ' Satır numarasını en az 2 yap

        ' En son dosya adını hücreye yazdırın
        Cells(satirNo, "A").Value = enSonDosya.Name
    Else
        MsgBox "Klasörde dosya bulunamadı."
    End If
End Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
538
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Pitchoute hocam elinize emeğinize sağlık. Fakat benim hatam, (örnek dosya eklemediğim için) yanlış anlaşılma olmuş.

Örnek excel dosyasındaki gibi verileri almak istiyordum.

Dosya ekledim.

https://www.dosya.tc/server/adnqpm/ornek.xlsm.html
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Mart 2024
Mesajlar
84
Excel Vers. ve Dili
Excel 2013 TR & Excel 2016 TR
Merhaba,
VBA olarak Kullanıcı Tanımlı Fonksiyon

C++:
Function DosyaAd(DosyaTamYol As String) As String
    If Dir(DosyaTamYol) <> "" Then
        ' Geçerli bir dosya varsa, dosya adını döndür
        DosyaAd = Dir(DosyaTamYol)
    Else
        ' Geçersiz dosya yolu ise yinede yaz
        DosyaAd = Mid(DosyaTamYol, InStrRev(DosyaTamYol, "\") + 1)
        ' sonuna " !" işareti ekle
        DosyaAd = DosyaAd & " !"
    End If
End Function
Sayfa da kullanım şekillerine örnek
=DosyaAd(A2)
veya
=DosyaAd("C:\Users\hakki\Desktop\ana klasör\resim1.jpg")

Not:

Excel yerleşik fonksiyonlar konusunda zayıfım
o bakımdan Bilgili arkadaşlar yardımcı olacaktır.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
538
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba,
VBA olarak Kullanıcı Tanımlı Fonksiyon

C++:
Function DosyaAd(DosyaTamYol As String) As String
    If Dir(DosyaTamYol) <> "" Then
        ' Geçerli bir dosya varsa, dosya adını döndür
        DosyaAd = Dir(DosyaTamYol)
    Else
        ' Geçersiz dosya yolu ise yinede yaz
        DosyaAd = Mid(DosyaTamYol, InStrRev(DosyaTamYol, "\") + 1)
        ' sonuna " !" işareti ekle
        DosyaAd = DosyaAd & " !"
    End If
End Function
Sayfa da kullanım şekillerine örnek
=DosyaAd(A2)
veya
=DosyaAd("C:\Users\hakki\Desktop\ana klasör\resim1.jpg")

Not:

Excel yerleşik fonksiyonlar konusunda zayıfım
o bakımdan Bilgili arkadaşlar yardımcı olacaktır.
Emeğinize sağlık olmuştur. Sadece sondaki ünlem işaretini çıkardım.
 
Katılım
6 Mart 2024
Mesajlar
84
Excel Vers. ve Dili
Excel 2013 TR & Excel 2016 TR
ünlem işaretini çıkardım
Dosya olup olmaması önemli değil,
sadece enson "\" işaretinden sonraki kelimeleri versin derseniz.

Kodlar kısaltılabilir.
C++:
Function DosyaAd(DosyaTamYol As String) As String
        DosyaAd = Mid(DosyaTamYol, InStrRev(DosyaTamYol, "\") + 1)
End Function
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
538
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Dosya olup olmaması önemli değil,
sadece enson "\" işaretinden sonraki kelimeleri versin derseniz.

Kodlar kısaltılabilir.
C++:
Function DosyaAd(DosyaTamYol As String) As String
        DosyaAd = Mid(DosyaTamYol, InStrRev(DosyaTamYol, "\") + 1)
End Function
Bu daha güzel sade oldu Biolightant hocamız.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,199
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Formülle alternatif...

C++:
=PARÇAAL(A2;BUL("|";YERİNEKOY(A2;"\";"|";UZUNLUK(A2)-UZUNLUK(YERİNEKOY(A2;"\";""))))+1;255)
Ofis 365 için;

C++:
=SONRAKİMETİN(A2;"\";-1)
 
Üst