Sayfayı PDF sayfasına sığdırma

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
507
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Merhabalar, aşağıdaki kod ile aktif sayfayı pdf yapıyorum. Fakat A dan H sütununa kadar, pdf 1. sayfaya kadar I dan L sütununu pdf 2. sayfaya atıyor.
Yapmak isteğim A dan L sütunu dahil pdf in ilk sayfasına kaydetme ve her butona bastığımda pdf isminin yanına tarih saat atarak tekrar pdf alması.
Bilgi için şimdiden teşekkürler...

Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim lastRow As Long
Dim rng As Range
Dim pdfPath As String
Set ws = ThisWorkbook.ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
Set rng = ws.Range("B1:L" & lastRow)
pdfPath = "D:\YEDEK\Veri.pdf"
rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "PDF başarıyla kaydedildi: " & pdfPath
End Sub
 
Katılım
6 Mart 2024
Mesajlar
209
Excel Vers. ve Dili
Excel 2010 TR & Excel 2016 TR
Merhaba,
Doğru anladıysam bu şekilde bir şey istiyorsun
A sütununun son satırımı yoksa
B sütunu son satırımı tam emin olmamakla beraber.
C++:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim pdfPath As String
    Dim formattedNow As String

    ' Aktif çalışma sayfasını seç
    Set ws = ThisWorkbook.ActiveSheet

    ' B sütunundaki son dolu satırı bul
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ' Tarihi özel formatta oluştur (YılAyGünSaatDakikaSaniye) (milisaniye=f)
    formattedNow = Format(Now, "yyyymmddhhnnss")

    ' PDF'nin kaydedileceği yol
    pdfPath = "D:\YEDEK\Veri_" & formattedNow & ".pdf"

    ' Yazdırma alanını ayarla
    ws.PageSetup.PrintArea = "B1:L" & lastRow

    ' Sayfayı kesinlikle 1 sayfaya sığdır
    With ws.PageSetup
        .Zoom = False ' Ölçeklendirme manuel ayarlanıyor
        .FitToPagesWide = 1 ' Yatayda 1 sayfa
        .FitToPagesTall = 1 ' Dikeyde 1 sayfa
    End With

    ' PDF'yi dışa aktar
    ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False ' PDF açmak için OpenAfterPublish:=True

    ' Yazdırma alanını temizle ve eski ayarları sıfırla
    ws.PageSetup.PrintArea = ""
    With ws.PageSetup
        .FitToPagesWide = False ' Sığdırma ayarlarını kapat
        .FitToPagesTall = False
        .Zoom = 100 ' Ölçeklendirmeyi %100'e sıfırla
    End With

    MsgBox "PDF kaydedildi: " & pdfPath
End Sub
 
Son düzenleme:

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
507
Excel Vers. ve Dili
Excel Vers. ve Dili : Ofis 2016 Tr
Altın Üyelik Bitiş Tarihi
13.09.2027
Merhabalar Sayın Biolightant,
Haklısınız yazdığım kodda A1 yazacağım yere B1 yanlışlıkla yazmışım. Yazdığınız kodda B1 i A1 yapıp denedim. İstediğim şekilde kayıt yapmakta. Bilginize ve elinize sağlık, çok teşekkürler. Saygılar...
 
Katılım
6 Mart 2024
Mesajlar
209
Excel Vers. ve Dili
Excel 2010 TR & Excel 2016 TR
Merhabalar,
Geri dönüşünüz için çok teşekkür ederim.
Sorunun çözülmüş olmasına ve kodun istediğiniz gibi çalışmasına çok sevindim.
Saygılarımla...
 
Üst