Yenilenen satırlarda sayfa numarası verme

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Sayfada yer alan "ilk satır" Sayfa yapısında tüm sayfalarda yenilecek olan satırlardır.

Burada "H1" hücresinde Toplam sayfa sayısı yazmakta; bunu her bir sayfada; "Sayfa numarası / Toplam Sayfa Sayısı" formatında (1/7, 2/7 , ...... 6/7, 7/7) olarak uygulanmasını istemekteyim.

Özetle sayfayı PDF oluşturulurken her bir sayfanın sağ üst köşesinde ("&[Sayfa]&[ToplamSayfa]") olarak uygulanmasını istemekteyim.

Mevcut formatı bozmadan bu işlemi nasıl yapabilirim?

Bu konuda yardımcı olursanız sevinirim.

iyi Çalışmalar.
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,

"Başlıkları Yazdır" ile ilk satırı her sayfada yenilediğiniz için sayfalarda "L" sütununa referans olacak satırı bulduramadım. Onun yerine headerlar üzerinden işlem yapılsa sizin için uygun olur mu?

Kod:
Sub kacSayfa()

Dim dikeyss, yatayss, toplam, toplamss As Integer

'dikeyss = ActiveSheet.HPageBreaks.Count + 1
'yatayss = ActiveSheet.VPageBreaks.Count + 1
'toplam = dikeyss * yatayss
toplamss = ActiveSheet.PageSetup.Pages.Count
    
    With ActiveSheet.PageSetup
        .RightHeader = "&P" & "/" & toplamss
    End With

End Sub
Kodda yorum satırı olarak işaretlenmiş kısım, dikeydeki, yataydaki ve toplam sayfaların sayılarını ayrı ayrı hesaplamak için kullanılabilir.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

"Başlıkları Yazdır" ile ilk satırı her sayfada yenilediğiniz için sayfalarda "L" sütununa referans olacak satırı bulduramadım. Onun yerine headerlar üzerinden işlem yapılsa sizin için uygun olur mu?

Kod:
Sub kacSayfa()

Dim dikeyss, yatayss, toplam, toplamss As Integer

'dikeyss = ActiveSheet.HPageBreaks.Count + 1
'yatayss = ActiveSheet.VPageBreaks.Count + 1
'toplam = dikeyss * yatayss
toplamss = ActiveSheet.PageSetup.Pages.Count
   
    With ActiveSheet.PageSetup
        .RightHeader = "&P" & "/" & toplamss
    End With

End Sub
Kodda yorum satırı olarak işaretlenmiş kısım, dikeydeki, yataydaki ve toplam sayfaların sayılarını ayrı ayrı hesaplamak için kullanılabilir.
Hocam merhaba,
ActiveSheet.PageSetup olayanın dışında çözmemiz gereken bir konu;
Print ederken aşağıdaki kod ile çözümü buldum aslında; sayfaları tek tek print ettiği için sorun çözülüyor.

yalnız PDF kayıt ederken nasıl bir çözüm üreteceğiz? bunu araştırıyorum.

Kod:
Sub PrintWithPageNum()
Dim NumPages As Long, pg As Long
    NumPages = ExecuteExcel4Macro("Get.document(50)")
    For pg = 1 To NumPages
        
       With ActiveSheet
            .Range("J1").Value = pg & " of " & NumPages
            .PrintOut from:=pg, To:=pg
        End With

    Next pg
End Sub
teşekkürler, iyi akşamlar.
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,

Sayfa sayınız fazla değilse her sayfayı ayrı ayrı pdf kaydedip sonra onları birleştirsek?
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Sayfa sayınız fazla değilse her sayfayı ayrı ayrı pdf kaydedip sonra onları birleştirsek?
Sayfa sayısı 10 ile 20 arasında PDF birleştirme nasıl olacak?
Excel ortamında her bir sayfayı birleştirerek PDF oluşturmaya devam edilemez mi?
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Acrobat Reader Pro SDK’ yı referanslara ekleyip birleştirme yapabiliyoruz. Özel sayfa sayısı aralıkları için bence sürekli pdf e sayfa eklemektense tek tek sayfaları numaralı kaydedip ordan ilerlemek daha faydalı olabilir.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Acrobat Reader Pro SDK’ yı referanslara ekleyip birleştirme yapabiliyoruz. Özel sayfa sayısı aralıkları için bence sürekli pdf e sayfa eklemektense tek tek sayfaları numaralı kaydedip ordan ilerlemek daha faydalı olabilir.
Kod ile bir çözüm olmaz mı diyorsunuz?
ilginize teşekkürler,
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Pdf birleştirme üzerinden gidilecekse tek çözüm bu görünüyor. Standart acrobat reader ne yazıkki bunu desteklemediği için pro sürümüne ihtiyaç duyuyoruz. Vba ile pro’yu tetikliyoruz.

Alternatif olarak satır yenilemek yerine, makro ile o satırı her sayfanın başına getirirsek toplu pdf i tek seferde oluşturabiliriz.
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
Merhaba,

"Adobe Acrobat 10 Type Library" ile pdf işlemine ait dosyayı ekliyorum. Belki işinize yarar.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
@tamer42,

Ben boş bir excel dosyasında bahsettiğiniz şekilde ilk satırı her sayfada tekrarlanacak şekilde tanımladım. Daha sonra sağ üst köşede "Sayfa numarası / Toplam Sayfa Sayısı" şeklinde tanımlama yaptım. Dosyayı PDF olarak kaydettiğimde aşağıdaki görsel oluştu.

220310
 
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
@Korhan Ayhan

@tamer42 anladığım kadarıyla, üst bilgi şeklinde değil de; üstte yinelenen satırlarda sayfa numarası / toplam sayfa yazmasını istiyor.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
@Korhan Ayhan

@tamer42 anladığım kadarıyla, üst bilgi şeklinde değil de; üstte yinelenen satırlarda sayfa numarası / toplam sayfa yazmasını istiyor.
doğrudur, üst bilgi şeklinde değil de; üstte yinelenen satırlarda "Sayfa Numarası / Toplam Sayfa" olarak görünmesini istiyoruz.
aşağıdaki kod da print ederken sayfa-sayfa print aldığı zaman her bir sayfayı bu şekilde numaralandırıyor, yalnız PDF oluşturmada bunu yapamadık.

Kod:
Sub PrintWithPageNum()
Dim NumPages As Long, pg As Long
    NumPages = ExecuteExcel4Macro("Get.document(50)")
    For pg = 1 To NumPages
        
       With ActiveSheet
            .Range("J1").Value = pg & " of " & NumPages
            .PrintOut from:=pg, To:=pg
        End With

    Next pg
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu durumda PDF olarak kayıt ederken makro ile ilk önce Sağ-Üst Bilgi olarak tanımlayıp sonuca gidebilirsiniz. İşlem bittikten sonra ise Sağ-Üst Bilgiyi temizleyerek verilerinizin orjinalliğini korumuş olursunuz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Bu durumda PDF olarak kayıt ederken makro ile ilk önce Sağ-Üst Bilgi olarak tanımlayıp sonuca gidebilirsiniz. İşlem bittikten sonra ise Sağ-Üst Bilgiyi temizleyerek verilerinizin orjinalliğini korumuş olursunuz.
Korhan hocam ilginize teşekkürler,
ilgili hücreye bu konuda bir formül yazılarak çözüm üretilemz mi?

biraz araştırdığımda bu konuda "&[Sayfa]&[ToplamSayfa]" (Türkçe) şeklinde bir kaç yazım şekli gördüm, fakat hücreye nasıl uygulanabilir bilemiyorum.
iyi Çalışmalar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Üst bilgiyi kullanmayı istememenizin özel bir nedeni var mı?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

İstediğiniz bu mu?
Kod:
ActiveSheet.PageSetup.RightHeader = "&P / " & [H1]
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Üst bilgiyi kullanmayı istememenizin özel bir nedeni var mı?
Korhan Hocam Sayfanın üzerinde ilk 4 satırda tablo var ve ( 2 sütun ve 4 satır olan) tablonun bir formatı mevcut, tabloyu üst bilgi olarak kullanamıyoruz.
aslında 1. sayfanın üzerinde yenilenen 4 satır var, diğer bilgiler tüm sayfalarda sabit, sadece değişken olan "Sayfa No"

Tarih:
Referens No:
Döküman No:
Sayfa No:


iyi Çalışmalar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,519
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya paylaşabilir misiniz?
 
Üst