Dosya İçerisinde Var Mı Yok Mu?

1 2
29/02/2024, 11:33

cdenktas

(29/02/2024, 10:46)atoykan yazdı: Makro içeren Excel dosyası (.xlsm) olarak kaydetmez .xlsx olarak kaydetmeye devam ederseniz kodları kaydederken ihmal eder.

Tekrar ben;

Başta 2 plaka dosyada pdf hali olmasına rağmen yok değil,

[img]

acaba sebebi ne olabilir.
29/02/2024, 12:49

atoykan

Örneğinizde belge yolunu köprü olarak formüle ederek oluşturup alternatif metin olarak sonuç döndürmüşsünüz. Ben örneğinizi incelememiş Sayın @onur_can 'ın verdiği destek çerçevesinde kodu genel yapıya uyarlamıştım. Alternatif metin dosya yolunu içermiyor o yüzden hata alıyorsunuz, ayrıca Open işleminde Excel'de bazen sorun çaıkartabiliyor onu atlamışım onun yerine Dir kullanılabilir.
Bu hali ile deneyin sorununuz çözülmüş olur

    Dim ws As Worksheet, LastRow As Long, i As Long
   
    Set ws = ThisWorkbook.Sheets("Sayfa1")  ' Çalışmak istediğiniz sayfa adı
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row    ' Son kullanılan satır
   
    For i = 2 To LastRow    ' Başlıkların olduğu ilk satırı atlar
        BelgeYolu = "C:\.........\Belge Getirmek\Belge\" & ws.Cells(i, 3).Value & ".pdf" 'dosya yolunu kendi çalışmanıza göre düzenleyin
        If Len(BelgeYolu) > 0 Then  ' Belge sütunu boş değilse
            If Dir(BelgeYolu) <> "" Then
                ws.Cells(i, 4).Value = "Var"
            Else
                ws.Cells(i, 4).Value = "Yok"
            End If
        Else
            ws.Cells(i, 4).Value = "Yok"
        End If
    Next i
29/02/2024, 13:46

cdenktas

(29/02/2024, 12:49)atoykan yazdı: Örneğinizde belge yolunu köprü olarak formüle ederek oluşturup alternatif metin olarak sonuç döndürmüşsünüz. Ben örneğinizi incelememiş Sayın @onur_can 'ın verdiği destek çerçevesinde kodu genel yapıya uyarlamıştım. Alternatif metin dosya yolunu içermiyor o yüzden hata alıyorsunuz, ayrıca Open işleminde Excel'de bazen sorun çaıkartabiliyor onu atlamışım onun yerine Dir kullanılabilir.
Bu hali ile deneyin sorununuz çözülmüş olur

    Dim ws As Worksheet, LastRow As Long, i As Long
   
    Set ws = ThisWorkbook.Sheets("Sayfa1")  ' Çalışmak istediğiniz sayfa adı
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row    ' Son kullanılan satır
   
    For i = 2 To LastRow    ' Başlıkların olduğu ilk satırı atlar
        BelgeYolu = "C:\.........\Belge Getirmek\Belge\" & ws.Cells(i, 3).Value & ".pdf" 'dosya yolunu kendi çalışmanıza göre düzenleyin
        If Len(BelgeYolu) > 0 Then  ' Belge sütunu boş değilse
            If Dir(BelgeYolu) <> "" Then
                ws.Cells(i, 4).Value = "Var"
            Else
                ws.Cells(i, 4).Value = "Yok"
            End If
        Else
            ws.Cells(i, 4).Value = "Yok"
        End If
    Next i

Var olun, çok teşekkür ederim. Emeğinize sağlık...
1 2