• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

PDF KAYDET KODUNDA AYNI DOSYA ÜZERİNE KAYIT UYARISI

Katılım
24 Nisan 2021
Mesajlar
43
Excel Vers. ve Dili
2021 Türkçe
Merhaba

Excelde pdf olarak kaydetmek için aşağıdaki kodu kullanıyorum. Ama aynı isimli dosya olursa uyarı vermeden direk üstüne kaydediyor.
Aynı isimli pdf dosyası olduğu zaman kaydetmeyecek şekilde kodu güncelleyebilir miyiz?

Sub PdfKaydet()

Path = Worksheets("Ayarlar").Range("C15").Text
Tarih = Worksheets("Günlük").Range("G2").Value
Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"

End Sub
 
Kaydet satırının önüne aşağıdaki satırı ilave edin.
Kod:
If Dir(Path & Tarih & ".pdf" ) <> ""
 
Kod:
If Dir(Path & Tarih & ".pdf" ) <> ""

Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"

end if
 
Deneyiniz.
Kod:
Sub PdfKaydet()
Dim fs As FileSystemObject

Path = Worksheets("Ayarlar").Range("C15").Text

Tarih = Worksheets("Günlük").Range("G2").Value

dosyaAdi = Path & Tarih & ".pdf"

If fs.FileExists(dosyaAdi) = True Then

Msgbox "Aynı isimde dosya bulunduğu için kayıt işlemi yapılmadı.!" 

Exit sub

End If

Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"



End Sub
 
Kod:
sub kaydet()

Path = Worksheets("Ayarlar").Range("C15").Text

Tarih = Worksheets("Günlük").Range("G2").Value

If Dir(Path & Tarih & ".pdf" ) <> "" then

Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"

end if

end sub
 
Deneyiniz.
Kod:
Sub PdfKaydet()
Dim fs As FileSystemObject

Path = Worksheets("Ayarlar").Range("C15").Text

Tarih = Worksheets("Günlük").Range("G2").Value

dosyaAdi = Path & Tarih & ".pdf"

If fs.FileExists(dosyaAdi) = True Then

Msgbox "Aynı isimde dosya bulunduğu için kayıt işlemi yapılmadı.!"

Exit sub

End If

Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"



End Sub


Bu şekilde hata verdi

 
Kod:
sub kaydet()

Path = Worksheets("Ayarlar").Range("C15").Text

Tarih = Worksheets("Günlük").Range("G2").Value

If Dir(Path & Tarih & ".pdf" ) <> "" then

Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=Path & Tarih & ".pdf"

end if

end sub


Bunu da uyguladım hata vermiyor ama sonuç da vermiyor malesef. Kayıt yapmıyor yani.
 
Merhaba,

Deneyiniz.

Kod:
Sub PdfKaydet()
    Dim Path As String
    Dim Tarih As String
    Dim DosyaYolu As String

    Path = Worksheets("Ayarlar").Range("C15").Text
    Tarih = Worksheets("Günlük").Range("G2").Value
    DosyaYolu = Path & Tarih & ".pdf"

    If Len(Dir(DosyaYolu)) > 0 Then
        MsgBox "Dosya mevcut: " & DosyaYolu, vbExclamation, "Uyarı"
    Else
        Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
    End If
End Sub



Sor ve kaydet,

Kod:
Sub PdfKaydet()
    Dim Path As String
    Dim Tarih As String
    Dim DosyaYolu As String
    Dim cevap As VbMsgBoxResult

    Path = Worksheets("Ayarlar").Range("C15").Text
    Tarih = Worksheets("Günlük").Range("G2").Value
    DosyaYolu = Path & Tarih & ".pdf"

    If Len(Dir(DosyaYolu)) > 0 Then
        cevap = MsgBox("Dosya zaten mevcut. Üzerine yazmak istiyor musunuz?", vbYesNo + vbQuestion, "Onay")
        If cevap = vbYes Then
            Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
            MsgBox "Dosya başarıyla kaydedildi.", vbInformation
        Else
            MsgBox "İşlem iptal edildi.", vbInformation
        End If
    Else
        Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
        'MsgBox "Dosya başarıyla kaydedildi.", vbInformation
    End If
End Sub
 
Son düzenleme:
Merhaba,

Deneyiniz.

Kod:
Sub PdfKaydet()
    Dim Path As String
    Dim Tarih As String
    Dim DosyaYolu As String

    Path = Worksheets("Ayarlar").Range("C15").Text
    Tarih = Worksheets("Günlük").Range("G2").Value
    DosyaYolu = Path & Tarih & ".pdf"

    If Len(Dir(DosyaYolu)) > 0 Then
        MsgBox "Dosya mevcut: " & DosyaYolu, vbExclamation, "Uyarı"
    Else
        Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
    End If
End Sub



Sor ve kaydet,

Kod:
Sub PdfKaydet()
    Dim Path As String
    Dim Tarih As String
    Dim DosyaYolu As String
    Dim cevap As VbMsgBoxResult

    Path = Worksheets("Ayarlar").Range("C15").Text
    Tarih = Worksheets("Günlük").Range("G2").Value
    DosyaYolu = Path & Tarih & ".pdf"

    If Len(Dir(DosyaYolu)) > 0 Then
        cevap = MsgBox("Dosya zaten mevcut. Üzerine yazmak istiyor musunuz?", vbYesNo + vbQuestion, "Onay")
        If cevap = vbYes Then
            Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
            MsgBox "Dosya başarıyla kaydedildi.", vbInformation
        Else
            MsgBox "İşlem iptal edildi.", vbInformation
        End If
    Else
        Worksheets("Günlük").ExportAsFixedFormat xlTypePDF, Filename:=DosyaYolu
        'MsgBox "Dosya başarıyla kaydedildi.", vbInformation
    End If
End Sub

Çok çok teşekkür ederim. İstediğimden bile daha fazlasını paylaşmışsınız. Sorunsuz çalışıyor.
 
Bişey daha istesem peki sizden

PDF olarak kaydettikten sonra, otomatik olarak kaydedilen pdf'nin de açılmasını da sağlayabilirmiyiz?
 
Bişey daha istesem peki sizden

PDF olarak kaydettikten sonra, otomatik olarak kaydedilen pdf'nin de açılmasını da sağlayabilirmiyiz?


Kodun en sonundaki End If'den bir önceki satıra Shell "explorer.exe " & Chr(34) & DosyaYolu & Chr(34), vbHide ekleyip deneyiniz.
 
Şu satırda dosyayı açar...

Worksheets("Günlük").ExportAsFixedFormat, OpenAfterExport:=True
 
Bende bu haliyle denemedim. Tahmini yazmıştım. Belki eksik olmuş olabilir. Ama pdf kaydetme parametrelerinde dosyayı açma seçeneği var.
 
Geri
Üst