Soru SATIRLARI BAŞLIĞIYA BERABER AYRI AYRI OTOMATİK YAZDIRMA

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
Merhaba,

Excel tablomda her satırı başlıklarıyla beraber ayrı ayrı otomatik olarak çıktı alabilirmiyim.Satır ve sütün sayısı değişebilir seçime bağlı olursa güzel olur
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
C++:
Sub Tabloyazdir()
    Dim satir As Long
    Dim sutun As Long
    Dim yazdirRange As Range
    
    
    satir = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    sutun = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    
    
    Set yazdirRange = Range(Cells(1, 1), Cells(satir, sutun))
    

    ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
    ActiveSheet.PageSetup.FitToPagesWide = 1
    ActiveSheet.PageSetup.FitToPagesTall = False
    
    yazdirRange.PrintOut
End Sub
Mödüle ekleyip tablonuzu yazdırabilirsiniz
 
  • Beğen
Reactions: smt

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Konuyla ilgili örnek bir dosya paylaşmanız mümkün mü?
 

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
C++:
Sub Tabloyazdir()
    Dim satir As Long
    Dim sutun As Long
    Dim yazdirRange As Range
    
    
    satir = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    sutun = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    
    
    Set yazdirRange = Range(Cells(1, 1), Cells(satir, sutun))
    

    ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
    ActiveSheet.PageSetup.FitToPagesWide = 1
    ActiveSheet.PageSetup.FitToPagesTall = False
    
    yazdirRange.PrintOut
End Sub
Mödüle ekleyip tablonuzu yazdırabilirsiniz
Hocam bu hepsini tek seferde yazdırıyor.Basit bir örnek vermek gerekirse filtrelenmiş bir tablom var ad soyad ve numara 1 den 100 kadar numara veriyorum ve listede 1000 kişi var filtredim numaraya göre tek tek ayrı sayfalarda çıktı alıyorum.Bunu otomatik olarak nasıl yaparım.
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Hocam bu hepsini tek seferde yazdırıyor.Basit bir örnek vermek gerekirse filtrelenmiş bir tablom var ad soyad ve numara 1 den 100 kadar numara veriyorum ve listede 1000 kişi var filtredim numaraya göre tek tek ayrı sayfalarda çıktı alıyorum.Bunu otomatik olarak nasıl yaparım.
Merhaba,
Tabloda her satırı dediniz. Bu satır sayısı sabit mi. Yani her bir sayfada bir satır ve başlık mı yazdırıyorsunuz? Bazı sayfalardaki satırlar birden fazla olabilir mi?
 

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
Merhaba,
Tabloda her satırı dediniz. Bu satır sayısı sabit mi. Yani her bir sayfada bir satır ve başlık mı yazdırıyorsunuz? Bazı sayfalardaki satırlar birden fazla olabilir mi?
Yanlış ifade etmişim başlıklar tablolara göre değisebiliyor birden fazla genelde 4 veya 5 başlık ve filtreye göre satır sayısı birden fazla olabiliyor
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
A sütünundaki değişmeye göre yazdırmak. Başlık 1.satır olarak alındı.
Kod:
Sub Filtrele_Satir_Satir_Yaz()
Dim sonsat As Long
Dim sat As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set ws = ThisWorkbook.Worksheets("Sayfa1")
sonsat = Cells(Rows.Count, "A").End(3).Row

With ActiveSheet
    .ResetAllPageBreaks

    For i = 2 To sonsat
    Set rng = Range("A" & i)
        If rng.Value <> rng.Offset(1, 0).Value Then
            ActiveSheet.HPageBreaks.Add Before:=rng.Offset(1, 0)
        End If
    Next

End With

Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

End Sub
 
  • Beğen
Reactions: smt

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
A sütünundaki değişmeye göre yazdırmak. Başlık 1.satır olarak alındı.
Kod:
Sub Filtrele_Satir_Satir_Yaz()
Dim sonsat As Long
Dim sat As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set ws = ThisWorkbook.Worksheets("Sayfa1")
sonsat = Cells(Rows.Count, "A").End(3).Row

With ActiveSheet
    .ResetAllPageBreaks

    For i = 2 To sonsat
    Set rng = Range("A" & i)
        If rng.Value <> rng.Offset(1, 0).Value Then
            ActiveSheet.HPageBreaks.Add Before:=rng.Offset(1, 0)
        End If
    Next

End With

Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

End Sub
Hocam çok teşekkür ederim elinize sağlık
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
ActiveSheet.PrintOut , preview:=True

satırını böyle değiştirin.
ActiveSheet.PrintOut
 

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
A sütünundaki değişmeye göre yazdırmak. Başlık 1.satır olarak alındı.
Kod:
Sub Filtrele_Satir_Satir_Yaz()
Dim sonsat As Long
Dim sat As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Set ws = ThisWorkbook.Worksheets("Sayfa1")
sonsat = Cells(Rows.Count, "A").End(3).Row

With ActiveSheet
    .ResetAllPageBreaks

    For i = 2 To sonsat
    Set rng = Range("A" & i)
        If rng.Value <> rng.Offset(1, 0).Value Then
            ActiveSheet.HPageBreaks.Add Before:=rng.Offset(1, 0)
        End If
    Next

End With

Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

End Sub
Necati bey merhaba,ilk filtrede bazı sütünlardaki rakamları alt toplam alıyorum tek tek döküm alırken her filtrede bu toplam görünüyordu ancak sizin kodda bu toplam gözükmüyor.Ekleme şansımız var mı rahatsız ettim kusura bakmayı
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Alt toplamı hangi sütunda veya sütünlarda aldırıyordunuz?
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Kod:
Sub Alttoplamile_Satir_Satir_Yaz()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Range("A1").Select
Selection.RemoveSubtotal

Range("A1").Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(5, 6), _
    Replace:=False, PageBreaks:=True, SummaryBelowData:=True

Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

Selection.RemoveSubtotal

End Sub
 

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
Kod:
Sub Alttoplamile_Satir_Satir_Yaz()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Range("A1").Select
Selection.RemoveSubtotal

Range("A1").Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(5, 6), _
    Replace:=False, PageBreaks:=True, SummaryBelowData:=True

Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

Selection.RemoveSubtotal

End Sub
Bu kod çalışmadı Necati bey aslında yanlış ifade ettm E ve F sütununda alt toplam ifadesi yanliş oldu, normal toplam yapıyorum bir alt satırda toplam görünüyor filtre değiştikçe veriye göre değişiyor ancak ilk kodda yazdırırken görünmüyor.
 
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Harici paylaşım sitesine örnek dosya yükleyebilir misiniz?
 

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
Harici paylaşım sitesine örnek dosya yükleyebilir misiniz?

G sütunundaki her bir filtreye göre sırayla tek tek otomatik döküm(print) almak istiyorum E ve F de toplam yaptım her sayfada toplamda gözükmesi gerekiyor ilk yazdığınız kod işimi görüyor ancak toplamlar gözükse tam işimi görecek
 
Son düzenleme:
Katılım
20 Şubat 2007
Mesajlar
655
Excel Vers. ve Dili
2007 Excel, Word Tr
Kod:
Sub Alttoplamile_Satir_Satir_Yaz2()
Dim sonsat As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

With ThisWorkbook.Worksheets("Sayfa1")
If .FilterMode Then .ShowAllData
End With

Range("A1").Select

Selection.RemoveSubtotal

Range("A1").Select
Selection.Subtotal GroupBy:=7, Function:=xlSum, TotalList:=Array(5, 6), _
    Replace:=False, PageBreaks:=True, SummaryBelowData:=True

Columns("E:F").SpecialCells(xlFormulas).Font.Bold = True

sonsat = Cells(Rows.Count, "G").End(3).Row

Range("G1:G" & sonsat).Select
    Selection.Replace What:="*Toplam*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

Selection.RemoveSubtotal

End Sub
 
  • Beğen
Reactions: smt

smt

Katılım
19 Mayıs 2019
Mesajlar
11
Excel Vers. ve Dili
2016 tr
Kod:
Sub Alttoplamile_Satir_Satir_Yaz2()
Dim sonsat As Long

Application.ScreenUpdating = False
Application.DisplayAlerts = False

With ThisWorkbook.Worksheets("Sayfa1")
If .FilterMode Then .ShowAllData
End With

Range("A1").Select

Selection.RemoveSubtotal

Range("A1").Select
Selection.Subtotal GroupBy:=7, Function:=xlSum, TotalList:=Array(5, 6), _
    Replace:=False, PageBreaks:=True, SummaryBelowData:=True

Columns("E:F").SpecialCells(xlFormulas).Font.Bold = True

sonsat = Cells(Rows.Count, "G").End(3).Row

Range("G1:G" & sonsat).Select
    Selection.Replace What:="*Toplam*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
Application.DisplayAlerts = True
Application.ScreenUpdating = True

ActiveSheet.PageSetup.PrintTitleRows = "$1:$1"
ActiveSheet.PrintOut , preview:=True

ActiveSheet.ResetAllPageBreaks

Selection.RemoveSubtotal

End Sub
Necati bey çok tesekkür ederim şuan ofis dışındayım deneyip dönüş yapacağım
 
Üst