• DİKKAT

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

Soru macro ile pdf olarak kaydetme

  • Konbuyu başlatan Konbuyu başlatan incsoft
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Ağustos 2009
Mesajlar
752
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Arkadaşlar dosyamın ismi 2022-01--AYLIK.xlsm ve ben bu dosya üzerinden günlük olarak pdf yazıcıları ile her günün ismi ile belirtilen klasöre 2022-01-14-AYLIK.pdf isminde dosya kaydetmekteyim. 14,15,16 ise sayfanın adı ile yapmaktayım. Bunu macro ile otomatik olarak yaptırmamız mümkün müdür?
Örneğin d:\deneme klasörüne sayfanında adını 13 olduğunu varsayarak 2022-01-13-AYLIK.pdf olarak yazdırmasını istiyorum. Pdf yazıcım ise varsayılan yazıcı olarak atanmış durumdadır.
 

Ekli dosyalar

Merhaba, örnek olarak bir dosya hazırladım.
Userfom üzerinde bulunan combobox ile PDF yapmak istediğiniz sayfayı seçiniz.
 

Ekli dosyalar

Merhaba, örnek olarak bir dosya hazırladım.
Userfom üzerinde bulunan combobox ile PDF yapmak istediğiniz sayfayı seçiniz.

Çok muhteşem olmuş hocam elinize sağlık combofix olmadan her sayfanın içinde buton olup otomatik olması yapılamaz mı sizce? 13,14,15 seçimi combofix den yapılmadan direk sayfadan yazdır butonu ile otomatik olarak 2022-01-13-AYLIK.pdf olarak kaydedecek mesela...
 
Modül içerisine aşağıdaki kodları ekleyip, sayfada kullanmak istediğiniz butonlara pdf isimli bu kodu atayınız, hangi sayfadaki butona tıklarsanız o sayfayı pdf olarak kayıt eder.
Kod:
Sub pdf()
Dim yol As String, yil As Integer, ay As String, gun As String
yol = "D:\Deneme\"
yil = Year(Date)
ay = Month(Date)
gun = ActiveSheet.Name

If ay < 2 Then ay = 0 & ay

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"
End Sub
 
Modül içerisine aşağıdaki kodları ekleyip, sayfada kullanmak istediğiniz butonlara pdf isimli bu kodu atayınız, hangi sayfadaki butona tıklarsanız o sayfayı pdf olarak kayıt eder.
Kod:
Sub pdf()
Dim yol As String, yil As Integer, ay As String, gun As String
yol = "D:\Deneme\"
yil = Year(Date)
ay = Month(Date)
gun = ActiveSheet.Name

If ay < 2 Then ay = 0 & ay

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"
End Sub

Çok teşekkürler..
 
Çok teşekkürler..


hocam buna birde ebatları fazla olduğu için kalite seçeneği eklenebilir mi? Elle pdf yazıcı ile yaptırdığımda 65 kb olan dosya bu şekilde 260 kb oluyor.



'Yazıcı kalitesi
On Error Resume Next
ActiveSheet.PageSetup.PrintQuality = 50
Err.Clear
On Error GoTo 0




böyle bir kod ekledim olmuyor...Yine aynı boyutta kalıyor
 
Merhaba,
Öncelikle bir düzeltme yapayım If ay < 2 Then ay = 0 & ay satırını If Len(ay) < 2 Then ay = 0 & ay şeklinde değiştiriniz.

Dosyanın pdf olması konusunda ise paylaştığım kod yazıcı ile değil de Dışa Aktar özelliği ile oluşturuyor.
233433

Bu şekilde denediğim dosyalarda boyut konusunda bir sıkıntı olmadı. Uygulama yaptığınız dosyayı paylaşmanız mümkün mü?
 
Merhaba,
Öncelikle bir düzeltme yapayım If ay < 2 Then ay = 0 & ay satırını If Len(ay) < 2 Then ay = 0 & ay şeklinde değiştiriniz.

Dosyanın pdf olması konusunda ise paylaştığım kod yazıcı ile değil de Dışa Aktar özelliği ile oluşturuyor.
Ekli dosyayı görüntüle 233433

Bu şekilde denediğim dosyalarda boyut konusunda bir sıkıntı olmadı. Uygulama yaptığınız dosyayı paylaşmanız mümkün mü?

Bu sadece örnek dosya hocam. Bunda da denedim 7 kb macro yapıyor normal kullandığım Dora Pdf Writer 4 kb...
 

Ekli dosyalar

Merhaba,
Öncelikle bir düzeltme yapayım If ay < 2 Then ay = 0 & ay satırını If Len(ay) < 2 Then ay = 0 & ay şeklinde değiştiriniz.

Dosyanın pdf olması konusunda ise paylaştığım kod yazıcı ile değil de Dışa Aktar özelliği ile oluşturuyor.
Ekli dosyayı görüntüle 233433

Bu şekilde denediğim dosyalarda boyut konusunda bir sıkıntı olmadı. Uygulama yaptığınız dosyayı paylaşmanız mümkün mü?


sizde vardır unuttum hocam birde yazdırılacak sayfa seçimi ekleyebilirmiyiz? Mesela her zaman 1 ve 2 numaralı sayfaları yazacak
 
Merhaba,
Öncelikle bir düzeltme yapayım If ay < 2 Then ay = 0 & ay satırını If Len(ay) < 2 Then ay = 0 & ay şeklinde değiştiriniz.

Dosyanın pdf olması konusunda ise paylaştığım kod yazıcı ile değil de Dışa Aktar özelliği ile oluşturuyor.
Ekli dosyayı görüntüle 233433

Bu şekilde denediğim dosyalarda boyut konusunda bir sıkıntı olmadı. Uygulama yaptığınız dosyayı paylaşmanız mümkün mü?


hocam soruna bakabildinizmi?
 
Merhaba, dosyanızda sayfa 1 ve sayfa 2 A1 : G96 arası olan hücreler.

İlgili aralığı pdf olarak kayıt etmek için
Kod:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"
bu satırı aşağıdaki satır ile değiştiriniz.
Kod:
ActiveSheet.Range("A1:G96").ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"

Dosya boyutu konusunda, pdf yazıcı ile oluşturulan dosyadan boyut olarak küçük boyutlu oluşturuyor.
 
Merhaba, dosyanızda sayfa 1 ve sayfa 2 A1 : G96 arası olan hücreler.

İlgili aralığı pdf olarak kayıt etmek için
Kod:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"
bu satırı aşağıdaki satır ile değiştiriniz.
Kod:
ActiveSheet.Range("A1:G96").ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"

Dosya boyutu konusunda, pdf yazıcı ile oluşturulan dosyadan boyut olarak küçük boyutlu oluşturuyor.


xlQualityMinimum yaparak biraz daha düşük olmasını sağladım hocam ama yine oluşturduğum pdf yazıcısına göre biraz yüksek boyutta ona da katlanacağım. Birde yazdırılan dosyayı açtırma kodunu bulacağım sonra işlem tamamdır sayenizde. Teşekkürler..
 
Rica ederim.

OpenAfterPublish:=True kodu oluşturulan dosyayı açmanızı sağlar.
Kod:
ActiveSheet.Range("A1:G96").ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityMinimum, OpenAfterPublish:=True, Filename:=yol & yil & "-" & ay & "-" & gun & "-AYLIK.pdf"
 
233455
 
Geri
Üst