PrintToPDF Macro

Katılım
31 Ağustos 2023
Mesajlar
6
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Arkadaşlar merhaba,

81 il için hazırlamış olduğum bir excel dosyam var. Her ay verileri güncelleyip raporlamak için tek tek Print To PDF yaparak kaydediyorum. Forumda Save As PDF için macro örnekleri gördüm ama bu şekilde yaptığımda tablolarımın kenarlıkları ve yazı tiplerinde bozulmalar oluyor.
İnternette Print To PDF için makrolar var ama bunlar bütün çalışma kitabını tek bir PDF yapıyor bana 81 ilin hepsine ayrı ayrı PDF oluşturacak şekilde kaydedebileceğim bir makro lazım. Yardımcı olursanız çok sevinirim.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Aşağıda, Excel dosyanızdaki her bir sayfayı ayrı bir PDF dosyası olarak kaydedecek bir VBA makrosu örneği bulabilirsiniz. Bu makro, her sayfanın adını kullanarak PDF dosyalarını adlandıracaktır.
Makro Kodunu Eklemek için Adımlar:
  1. Excel dosyanızı açın.
  2. Alt + F11 tuşlarına basarak VBA editörünü açın.
  3. Menüden Insert > Module seçeneğini tıklayarak yeni bir modül oluşturun.
  4. Aşağıdaki kodu modüle yapıştırın.
Kod:
Sub SaveSheetsAsPDF()
Dim ws As Worksheet
Dim pdfPath As String
Dim folderPath As String

' PDF'lerin kaydedileceği klasörü belirtin
folderPath = "C:\PDFs\" ' Buraya PDF'lerin kaydedileceği tam yolunuzu yazın

' Klasörün var olup olmadığını kontrol edin, yoksa oluşturun
If Dir(folderPath, vbDirectory) = "" Then
MkDir folderPath
End If

' Her bir sayfayı PDF olarak kaydet
For Each ws In ThisWorkbook.Worksheets
pdfPath = folderPath & ws.Name & ".pdf"
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard
Next ws

MsgBox "Tüm sayfalar PDF olarak kaydedildi!"
End Sub
Açıklamalar:
  • folderPath değişkeni, PDF dosyalarının kaydedileceği klasörün yolunu belirtir. Bu yolun mevcut bir klasöre işaret ettiğinden emin olun veya uygun bir yol belirtin.
  • MkDir folderPath komutu, belirtilen klasör mevcut değilse oluşturur.
  • ws.ExportAsFixedFormat komutu, her bir sayfayı belirtilen yolda PDF olarak kaydeder.
Makroyu Çalıştırmak:
  1. VBA editöründe F5 tuşuna basarak veya VBA penceresindeki Run düğmesine tıklayarak makroyu çalıştırabilirsiniz.
  2. Makro çalıştığında, her bir sayfa belirtilen klasöre PDF olarak kaydedilecektir.
Bu makro, her bir sayfayı ayrı bir PDF dosyasına dönüştürmek için uygun olacaktır ve sayfa adlarını dosya adı olarak kullanacaktır. Eğer farklı bir yapı veya dosya adlandırma yöntemi isterseniz, kodda gerekli değişiklikleri yapabilirsiniz.

Deneyiniz dosya olmadığından sonucu bilmiyorum
 
Katılım
31 Ağustos 2023
Mesajlar
6
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Hocam cevabınız için teşekkür ederim ama dediğim gibi PDF olarak kaydedildiğinde tablolarda ve yazı tiplerinde ufak tefek bozulmalar oluyor. Bu yüzden PDF olarak yazdır seçeneğini kullanmam gerekiyor. O şekilde yapıldığında herhangi bir bozulma olmuyor.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bahsettiğiniz sorunun kaynağı toplu pdfye cevirme değil cihaza dosya sayfalarının kenar ayarlarına ya da başka bir şeye dayalı ozel yerel bir durum olacağı sanıları ile daha fazla bir şey oneremiyorum.
 
Katılım
31 Ağustos 2023
Mesajlar
6
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021
Print To PDF yaparak kaydedildiğinde herhangi bir problem çıkmıyor. PDF olarak kaydedince bozulmalar oluşuyor sadece. Print TO PDF için bir makro yok mudur acaba?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,459
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
bilmiyorum ustalar farklı bir oneri sunabilir
 
Üst