• DİKKAT

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

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

byfika

Altın Üye
Altın Üye
Katılım
15 Ağustos 2009
Mesajlar
512
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
342
Excel Vers. ve Dili
2010 TR & 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
512
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
342
Excel Vers. ve Dili
2010 TR & 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