VBA PDF Kaydederken Bazı Satırları Atlama

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,
Örnek dosyada ve resimde gösterildiği gibi listenin altında boş satırları almadan alttaki satırla devam edecek şekilde PDF kaydetmek mümkün müdür?

soru.webp
 

Ekli dosyalar

Bu durum tümden gerçekleşmez o zaman çıktı almanın bir anlamı kalmaz bu durum şundan gerekli aynı derse giren birden fazla öğretmen oluyor bir tanesi 2 şubeye diğer öğretmen ise 3 şubeye giriyor. Böyle olunca sadece o 2 ya da 3 sınıftan veri gönderiliyor. PDF 2 ya da 3 sayfa olması gerekirken 5 sayfa olarak çıkıyor bunu önlemek amaçlı.
Çok gerekli olduğunu düşünmüyorum ancak "Tüm sayfalarda birden bu durum gerçekleşirse"yi önlemek istenirse Liste ya da tüm sayfalarından birinde cevap alanının boş loup olmadığına baktırılarak veri yok çıktı alamazsınız gibi bir şey düşünülebilir.
 
@merakli

Mevcut PdfKaydet kodunu aşağıdakiyle değiştirip denemeler yapınız.

VBA:
Sub PdfKaydet()
Dim bukitap As Workbook
Set bukitap = ThisWorkbook
Dim yol As String, isim As String, XD1 As Integer, XD As Variant
yol = bukitap.Path: XD1 = 0: isim = Replace(Sheets("Liste").[A1].Text, "/", " ")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual

For Each XD In bukitap.Sheets
    If XD.Name <> "Veri" And XD.Name <> "Liste" And XD.Name <> "Ortalama" And XD.Name <> "Data" Then
        bukitap.Sheets(XD.Name).Rows.EntireRow.Hidden = False
        sonsut = 27: If XD.Name = "Tüm" Then sonsut = 28
        If bukitap.Sheets(XD.Name).Cells(9, sonsut).Value = "" Then GoTo 10
        For XDs = bukitap.Sheets(XD.Name).Cells(Rows.Count, sonsut).End(3).Row To 9 Step -1
            If bukitap.Sheets(XD.Name).Cells(XDs, sonsut).Value = "" Then _
            bukitap.Sheets(XD.Name).Rows(XDs).Hidden = True
        Next
        
        XD1 = XD1 + 1
        If XD1 = 1 Then
            XDD = 1: bukitap.Sheets(XD.Name).Copy
        Else: bukitap.Sheets(XD.Name).Copy After:=ActiveWorkbook.Sheets(1)
            XDD = ActiveWorkbook.Sheets.Count
            Sheets(ActiveSheet.Name).Move After:=Sheets(XDD)
        End If
    End If
10: Next
If XD1 >= 1 Then
    ActiveWorkbook.Worksheets.Select
    ActiveWorkbook.Sheets(1).ExportAsFixedFormat xlTypePDF, yol & "\" & isim & ".pdf"
    ActiveWorkbook.Close False
End If
For Each XD In bukitap.Sheets: bukitap.Sheets(XD.Name).Rows.EntireRow.Hidden = False: Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
If XD1 >= 1 Then
    MsgBox "İşlem Tamamlandı." & vbLf & vbLf & _
        XD1 & " adet sayfa için " & isim & ".pdf" & vbLf & _
        "isimli belge oluşturuldu", vbInformation, "::.. Ömer BARAN ..::"
Else: MsgBox "PDF yapılacak sayfa yok.", vbCritical, "::.. Ömer BARAN ..::"
End If
End Sub
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst