• DİKKAT

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

Excel pdf çevirme vba kodu

  • Konbuyu başlatan Konbuyu başlatan Lokmanx
  • Başlangıç tarihi Başlangıç tarihi
Katılım
10 Ağustos 2017
Mesajlar
159
Excel Vers. ve Dili
Excel 2017
Türkçe
Merhaba ,

Ekte yer alan tabloyu pdf e çevirmek için VBA kodu hakkında yardımcı olabilir misiniz ?

İyi çalışmalar
 

Ekli dosyalar

Selamlar

Makro kaydetme yöntemi ile yapabilirsiniz.
 
Merhaba ,

Makro ile işlem nasıl yapılıyor bilmiyorum bende aşağıdaki kod var ama sayfaya uyarlayamadım.

Sub PDFKaydet_Click()
dosya_adı = Cells(6, "D").Value & ".pdf"
If dosya_adı = "" Then
MsgBox "Dosya adı yok"
Exit Sub
End If
a = MsgBox(" PDF MASAÜSTÜNE KAYIT EDİLECEK", vbYesNo + vbInformation, " Uyarı")
If a = vbYes Then
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & dosya_adı, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "MASAÜSTÜNÜ KONTROL EDİNİZ. İŞLEM TAMAM :)"
End If
If a = vbNo Then
MsgBox "İŞLEMİ İPTAL ETTİNİZ"
End If
End Sub
 
Merhaba Korhan Bey,

Linkte olanları yapabiliyorum ancak bana pdf e çevirme için olması gereken kod lazım. Bendeki kodu uyarlayamadım ekli dosyaya

İyi çalışmalar
 
Makro Kaydet yöntemini kullanarak ilgili kodlara erişebilirsiniz.

Makro kaydet tuşuna bastıktan sonra sayfanızı pdf formatında kayıt ediniz. Sonrasında makro kaydını durdurunuz.

Makro kaydet işlemini yaptığınız dosyanızda ALT +F11 tuşlarına bastığınızda kod editöründe kodları görebilirsiniz.
 
Korhan Bey bu bilgi için teşekkür ederim bunu öğrenmem çok iyi oldu.

Belirttiğiniz şekilde olumlu sonuca ulaştım sayenizde. Ancak sayfanın A1 - D30 Aralığını sadece PDF olarak kaydetmek istiyorum. Bu şekilde tüm verileri alıyor haklı olarak makro (kod)

Koda ekleme yaparak sadece A1-D30 hücre aralığını PDF e çevirmemiz mümkün mü acaba

Sub Makro1()
'
' Makro1 Makro
'
' Klavye Kısayolu: Ctrl+Shift+A
'
ChDir "C:\Users\lokman.guvenc\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\lokman.guvenc\Desktop\Tazminat Hesaplama.pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
MsgBox "Form Masaüstüne Kaydedildi.."
End Sub
 
Böyle olabilir sanırım.

C++:
    ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\lokman.guvenc\Desktop\Tazminat Hesaplama.pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
 
Teşekkür ederim Korhan Bey,

Son olarak bilgisayar adı olarak benim bilgisayar adım geçiyor başka bilgisayarda hata veriyor formül. Bilgisayar adı gözetmeden pdf kaydetmesi için ne yapabilirim

İyi çalışmalar
 
İlgili bilgisayarda dosya nereye kayıt edilecek?
 
Deneyiniz.

C++:
    ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Environ("UserProfile") & "\Desktop\Tazminat Hesaplama.pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
 
Teşekkür Ederim Korhan Bey.

İyi çalışmalar
 
Deneyiniz.

C++:
    ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Environ("UserProfile") & "\Desktop\Tazminat Hesaplama.pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
Ayhan bey Bu koda bir de her pdf olarak kayd etdiyinde pdf dosyasının ismini belli bir hücredeki textden almasınıda ekleye bilirmisiniz?
 
Deneyiniz.

A1 hücresine göre ayarladım. Uzantısı olmadan ilgili hücreye dosya adını yazarsanız sorun çıkmadan kullanabilirsiniz.

C++:
ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Environ("UserProfile") & "\Desktop\" & Range("A1").Value & ".pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
 
Deneyiniz.

A1 hücresine göre ayarladım. Uzantısı olmadan ilgili hücreye dosya adını yazarsanız sorun çıkmadan kullanabilirsiniz.

C++:
ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Environ("UserProfile") & "\Desktop\" & Range("A1").Value & ".pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

Size zahmet olmayacaksa bana iki hücreden alması gerekiyor. 1 Fatura kodu, 2 Müşteri adı. Bunuda yaparsanız çok sevinirim
 
Kod içinde benim yazdığım gibi birleştirme işaretini kullanarak dilediğiniz kadar hücre adresini yazabilirsiniz.
 
Deneyiniz.

C++:
ActiveSheet.Range("A1:D30").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Environ("UserProfile") & "\Desktop\" & Range("A1").Value & " - " & Range("B1").Value & ".pdf" , _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
 
Geri
Üst