Skip to main content

AccessTr.neT


Dosya İçerisinde Var Mı Yok Mu?

Dosya İçerisinde Var Mı Yok Mu?

Çözüldü #1
Merhaba Arkadaşlar;

Excel listesinde bulunan plakaları köprü yöntemiyle ilgili plakaya ait pdf dosyası geliyor, d sutünda belgenin durumu başlığı altında bu plaka ilgili dosyada pdf. var mı yok mu onu öğrenmek için ne tür kod veya formül yazabiliriz.

Yardımlarınız için çok teşekkür ederim..
.rar Belge Getirmek.rar (Dosya Boyutu: 343,25 KB | İndirme Sayısı: 3)
Cevapla
#2
Örnek kod aşağıdaki gibidir, dosya yolunu kendinize göre değiştirin.
Private Sub DosyaKontrol_Click()
If Len(Dir("E:\Belge Getirmek\34bb34.pdf")) = 0 Then
MsgBox "34bb34.pdf dosyası bulunamadı"
Else
MsgBox "34bb34.pdf dosyası klasörde mevcuttur."
End If
End Sub
 İyi olan tek şey bilgi ve kötü olan tek şey de cehalettir. (Sokrates)
Cevapla
#3
(28/02/2024, 15:25)onur_can yazdı: Örnek kod aşağıdaki gibidir, dosya yolunu kendinize göre değiştirin.
Private Sub DosyaKontrol_Click()
If Len(Dir("E:\Belge Getirmek\34bb34.pdf")) = 0 Then
MsgBox "34bb34.pdf dosyası bulunamadı"
Else
MsgBox "34bb34.pdf dosyası klasörde mevcuttur."
End If
End Sub

Merhabalar;

Elimde çok fazla plaka var, her bir plaka için ayrı ayrı koda yazmak mı gerekiyor.
Cevapla
#4
Excel sayfanıza bir buton ekleyin ve tıklandığında olayına aşağıdaki kodu girin
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 = ws.Cells(i, 3).Value
            If Len(belgeYolu) > 0 Then  ' Belge sütunu boş değilse
                On Error Resume Next
                Open belgeYolu For Input As #1  ' Belgeyi açmaya çalış
                If Err.Number = 0 Then
                    ws.Cells(i, 4).Value = "Var"    ' Belge Durumu sütununa durum kaydı işle
                    Close #1
                Else
                    ws.Cells(i, 4).Value = "Yok"
                End If
                On Error GoTo 0
            Else
                ws.Cells(i, 4).Value = "Yok"
            End If
    Next i
. Bu kod çalışmanızda kaç satır varsa hepsinde C sütunundaki köprüde yer alan dosyayı okur, açılıyor mu kontrol eder ve dosya mevcut olup açılıyorsa durum sütununa var aksi halinde yok yazar.
Cevapla
#5
(28/02/2024, 16:28)atoykan yazdı: Excel sayfanıza bir buton ekleyin ve tıklandığında olayına aşağıdaki kodu girin
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 = ws.Cells(i, 3).Value
            If Len(belgeYolu) > 0 Then  ' Belge sütunu boş değilse
                On Error Resume Next
                Open belgeYolu For Input As #1  ' Belgeyi açmaya çalış
                If Err.Number = 0 Then
                    ws.Cells(i, 4).Value = "Var"    ' Belge Durumu sütununa durum kaydı işle
                    Close #1
                Else
                    ws.Cells(i, 4).Value = "Yok"
                End If
                On Error GoTo 0
            Else
                ws.Cells(i, 4).Value = "Yok"
            End If
    Next i
. Bu kod çalışmanızda kaç satır varsa hepsinde C sütunundaki köprüde yer alan dosyayı okur, açılıyor mu kontrol eder ve dosya mevcut olup açılıyorsa durum sütununa var aksi halinde yok yazar.

[img][Resim: do.php?img=16554][/img]
[img][Resim: do.php?img=16555][/img]
[img][Resim: do.php?img=16556][/img]

Emeğinize sağlık, kuırum Excel olduğundan kodu ilgili yere yapıştırıp kaydedip, Excel den çıktığımdan tekrar kod kısmına girdiğimde exceldeki yapıştırdığım kodlar gözükmüyor, sebebi ne olabilir
Cevapla
#6
Makro içeren Excel dosyası (.xlsm) olarak kaydetmez .xlsx olarak kaydetmeye devam ederseniz kodları kaydederken ihmal eder.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task