Hücre Değerine Göre Sayfalama

cimcoz

Altın Üye
Katılım
6 Ekim 2004
Mesajlar
324
Excel Vers. ve Dili
MS Office Plus 2016 & Mac OSX
Altın Üyelik Bitiş Tarihi
13-04-2027
Merhabalar,

Ekteki dosyama göre A sütünunda ki dönemlere göre sayfalama yapmak istiyorum.
Örneğin, 2000-01 dönemi bir sayfada, 2001-02 dönemi başka bir sayfada olması gerekiyor.
Ayrıca sayfalama yaparken 1. satırdaki başlıklar ile A ile M arasındaki veriyi deyeni sayfaya kopyalamasını içeren bir makro veye fonksiyona ihtiyacım var.
(Elimdeki veri çok büyük o yüzden rastgele verilerle bir dosya oluşturdum. Veri sayfasına bir makro çalıştıran tuş konabilir basınca sayfalama yapabilir.)

Yardımlarınız için şimdiden teşekkür ederim.

Saygılarımla,
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Her sayfada başlık yenileme işlemini Sayfa Özelliklerinden Başlıkları yazdır kısmında Üstte yinelenecek satırlar kısmında ayarlayabilirsiniz.

Her dönem değişiminde sayfa sonu eklemeyi aşağıdaki makro ile yapabilirsiniz:

PHP:
Sub sayfasonu()
    ActiveSheet.ResetAllPageBreaks
    son = WorksheetFunction.Max(3, Cells(Rows.Count, "A").End(3).Row)
    For i = 3 To son
        If Cells(i, "A") <> Cells(i - 1, "A") Then
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i, "A")
        End If
    Next
End Sub
Makroyu çalıştırmak için sayfanıza bir düğme/nesne/resim ekleyip bu düğmeye/nesneye/resme sağ tıklayıp makro ata diyerek ve açılan listeden sayfasonu makrosunu seçerek, o düğme aracılığıyla yapabilirsiniz.
 

cimcoz

Altın Üye
Katılım
6 Ekim 2004
Mesajlar
324
Excel Vers. ve Dili
MS Office Plus 2016 & Mac OSX
Altın Üyelik Bitiş Tarihi
13-04-2027
Her sayfada başlık yenileme işlemini Sayfa Özelliklerinden Başlıkları yazdır kısmında Üstte yinelenecek satırlar kısmında ayarlayabilirsiniz.

Her dönem değişiminde sayfa sonu eklemeyi aşağıdaki makro ile yapabilirsiniz:

PHP:
Sub sayfasonu()
    ActiveSheet.ResetAllPageBreaks
    son = WorksheetFunction.Max(3, Cells(Rows.Count, "A").End(3).Row)
    For i = 3 To son
        If Cells(i, "A") <> Cells(i - 1, "A") Then
            ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i, "A")
        End If
    Next
End Sub
Makroyu çalıştırmak için sayfanıza bir düğme/nesne/resim ekleyip bu düğmeye/nesneye/resme sağ tıklayıp makro ata diyerek ve açılan listeden sayfasonu makrosunu seçerek, o düğme aracılığıyla yapabilirsiniz.

Merhaba,
Dediğinizi denedim ama hiçbir hareket olmadı. Yolladığım dosya üzerinde yapabilieseniz çok sevinirim.

Saygılar..
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ne yaptınız da olmadı?

Burdaki kodları dosyanızda VBA sayfasına eklediniz mi?

Ayrıca makro sayfada sayfa sonlarını düzenlemekten başka bir şey yapmaz. Herhangi bir hareket olmaz. Makroyu çalıştırdıktan sonra baskı önizlemeden bakarak durumu inceleyiniz.
 

cimcoz

Altın Üye
Katılım
6 Ekim 2004
Mesajlar
324
Excel Vers. ve Dili
MS Office Plus 2016 & Mac OSX
Altın Üyelik Bitiş Tarihi
13-04-2027
Ne yaptınız da olmadı?

Burdaki kodları dosyanızda VBA sayfasına eklediniz mi?

Ayrıca makro sayfada sayfa sonlarını düzenlemekten başka bir şey yapmaz. Herhangi bir hareket olmaz. Makroyu çalıştırdıktan sonra baskı önizlemeden bakarak durumu inceleyiniz.
Benim konuya benzer bir dosya buldum, çalıştırabildim. Yardımınız için teşekkürler..
 
Üst