• DİKKAT

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

Tablodaki belirtilen sütundaki değerlere göre Toplu olarak tabloyu pdf lere ayırmak

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Merhabalar,
Ekli tablodaki verileri G sütunu dikkate alınarak Önce Başlık sonra Tablo başlıkları eklenerek g sütunundaki farklı değerlere göre bilgisayarımda pdf oalrak nasıl kaydedebilirim ? Örnek sayfayı da belirttim.
 

Ekli dosyalar

RBozkurt

????
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
753
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba, modüle ekleyerek deneyiniz.
Kod:
Sub PdfKaydet_Filtre()
  Dim ws As Worksheet
  Set ws = ThisWorkbook.Sheets("Sayfa1")
  Dim LastRow As Long
  LastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
  Dim FilterRange As Range
  Set FilterRange = ws.Range("G2:G" & LastRow)
  Dim FilterValues() As Variant
  FilterValues = GetFilterValues(FilterRange)
  Dim i As Long
  For i = LBound(FilterValues) To UBound(FilterValues)
    ws.Range("G2:G" & LastRow).AutoFilter Field:=1, Criteria1:=FilterValues(i)
    ws.Range("A1", ws.Cells(ws.Rows.Count, "G").End(xlUp)).Select
    ActiveSheet.PageSetup.PrintArea = Selection.Address
    ActiveSheet.PageSetup.FitToPagesWide = 1
    ActiveSheet.PageSetup.FitToPagesTall = 1
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      ThisWorkbook.Path & "\" & FilterValues(i) & "_Grup.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  Next i
  ws.AutoFilterMode = False
End Sub

Function GetFilterValues(FilterRange As Range) As Variant
  Dim FilterValues() As Variant
  Dim FilterCell As Range
  Dim i As Long
  i = 0
  For Each FilterCell In FilterRange
    If FilterCell.Value <> "" Then
      i = i + 1
      ReDim Preserve FilterValues(1 To i)
      FilterValues(i) = FilterCell.Value
    End If
  Next FilterCell
  GetFilterValues = FilterValues
End Function
 
Son düzenleme:

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Hocam denedim ancak hata alıyorum kodu ekleyeip dosya payalaşabilir misiniz ? hatamı bulamadım 1004 ve 1005 hatası alıyorum bir de pdf leri nereye oluşturuyor ?
 

RBozkurt

????
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
753
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
2. numaralı makroyu güncelledim.
 

Ekli dosyalar

  • 22.3 KB Görüntüleme: 7

RBozkurt

????
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
753
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Yukarıdaki dosya çalışıyor kendim denedim 2-3 defa.
Sürüm farkından kaynaklı muhtemelen, aşağıdakini deneyiniz, deneme imkanım yok.

C++:
Sub PdfKaydet_Filtre2007 ()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sayfa1")
Dim LastRow As Long
LastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
Dim FilterRange As Range
Set FilterRange = ws.Range("G2:G" & LastRow)
Dim FilterValues() As Variant
FilterValues = GetFilterValues(FilterRange)
Dim i As Long
For i = LBound(FilterValues) To UBound(FilterValues)
ws.Range("G2:G" & LastRow).AutoFilter Field:=1, Criteria1:=FilterValues(i)
ws.Range("A1", ws.Cells(ws.Rows.Count, "G").End(xlUp)).ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "" & FilterValues(i) & "_Grup.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
Next i
ws.AutoFilterMode = False
End Sub

Function GetFilterValues(FilterRange As Range) As Variant
Dim FilterValues() As Variant
Dim FilterCell As Range
Dim i As Long
i = 0
For Each FilterCell In FilterRange
If FilterCell.Value <> "" Then
i = i + 1
ReDim Preserve FilterValues(1 To i)
FilterValues(i) = FilterCell.Value
End If
Next FilterCell
GetFilterValues = FilterValues
End Function
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,652
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub pdflereBol()

    Dim lr&, rng As Range, lst, grp

    With ActiveSheet
        
        lr = .Cells(Rows.Count, "G").End(3).Row
        If lr > 2 Then
            Set rng = .Range("A2:G" & lr)

            .PageSetup.PrintArea = "A1:G" & lr
            .PageSetup.Orientation = xlPortrait

            .Range("M:M").Clear
            rng.Columns(7).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("M1"), Unique:=True

            lr = .Cells(Rows.Count, "M").End(3).Row

            For Each grp In .Range("M2:M" & lr).Value
                rng.AutoFilter Field:=7, Criteria1:=grp
                .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                     ThisWorkbook.Path & "\" & grp & "_Grup.pdf", Quality:=xlQualityStandard
            Next
            .AutoFilterMode = False
            .Range("M:M").Clear
        End If
        
    End With

End Sub
 
Son düzenleme:

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Hocam çok Teşekkür ederim evet böldü işlem tamamlandı .
 
Üst