• DİKKAT

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

Sayfa numaralandırma

  • Konbuyu başlatan Konbuyu başlatan gurgef
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Ekim 2008
Mesajlar
46
Excel Vers. ve Dili
Excel 2007 - Tr
Excel 2013 - Tr
Arkadaşlar, sayfa numaralandırma ile ilgili problemim var. Forumda aradım ama bulamadım bir türlü.

Ekteki dosyada görüldüğü üzere son sekmede (Bilanço), "yazdır" butonu var. Buna basınca bazı sheet'lerin çıktısı alınıyor (makro kaydet ile yaptım).

Şimdi sorun şu, "yazdır" butonuna basınca, çıktısı aşınacak sayfalara baştan sona sayfa numarası vermek istiyorum. Her sheet'e kendi içinde altbilgi olarak sayfa no tanımlayabiliyoruz,ancak her sheet bağımsız olarak numaralandırılıyor. Çıktısını aldığım sheetlerdeki sayfalar için ardışık numara veremedim. Hatta mümkünse, "Sayfa No / Yazdırılan toplam sayfa sayısı" şeklinde sayfa numaralandırması tam süper olur. Bunun bir yolu varsa yardımcı olabilirseniz sevinirim.

Şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba;
Her sekmede yazdırılacak bir sayfa olduğu için her sayfada ;
Dosya>Sayfa Yapısı>Özel üstbilgi sekmesinde sağ,sol yada orta kısımda ;
Sayfa : 1/8
yazarak (ilk sayfa için) bunu manuel tanımlayabilirsiniz.
İyi çalışmalar
 
Bu şekilde dener misiniz ?
Kod:
Sub Yazdir()
    Sheets("Nak. Akım(toplam)").PageSetup.RightHeader = "5/1"
    Sheets("Nak. Akım(toplam)").PrintPreview
    Sheets("Nak. Akım(özkaynak)").PageSetup.RightHeader = "5/2"
    Sheets("Nak. Akım(özkaynak)").PrintPreview
    Sheets("Kaynak Akım").PageSetup.RightHeader = "5/3"
    Sheets("Kaynak Akım").PrintPreview
    Sheets("Fin. Nak. Akım").PageSetup.RightHeader = "5/4"
    Sheets("Fin. Nak. Akım").PrintPreview
    Sheets("Bilanço").PageSetup.RightHeader = "5/5"
    Sheets("Bilanço").PrintPreview
End Sub
 
Arkadaşlar yardımlarınız için çok teşekkür ederim.

Yalnız ilk mesajımda açıkça belirtmediğimi farkettim, şöyle bir durum var;

yazdırılacak sheetlerdeki sayfa sayısı artabilir. Şu an yazdırılacak her sheet'te 1 tane sayfa görünüyor, ancak herhangi bir sheet'e ilave sayfalar ekleyebilirim, yani aşağı doğru uzayabilir. İşte problemin çıktığı nokta da bu oluyor.

Ekteki örnekte 5 sheet ve her sheet'te 1 sayfa var. Ancak örneğin 3. sheet'teki sayfa sayısı 2 olduğunda artık numaralandırma 1'den 5'e değil, 1'den 6'ya kadar olması gerekiyor.

Bahsettiğim şekilde sayfa sayısı arttırılmış örnek dosyamı ekliyorum. Bu duruma uygun bir çözüm olabilirse çok sevinirim. Tekrar teşekkürler desteğiniz için.
 

Ekli dosyalar

Bu şekilde dener misiniz ?
Kod:
Sub Yazdir()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & ToplamSayfa & "\" & x
    Sheets(arr(i)).PrintPreview'Bu satırı, Sheets(arr(i)).PrintOut şeklinde değiştirin.
Next
Next
End Sub
Function ToplamSayfa()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    x = x + 1
Next
Next
ToplamSayfa = x
End Function
 
Bu şekilde dener misiniz ?
Kod:
Sub Yazdir()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & ToplamSayfa & "\" & x
    Sheets(arr(i)).PrintPreview'Bu satırı, Sheets(arr(i)).PrintOut şeklinde değiştirin.
Next
Next
End Sub
Function ToplamSayfa()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    x = x + 1
Next
Next
ToplamSayfa = x
End Function

Üstadım eline sağlık. İstediğim olay neredeyse olmuş. Ancak bir problem var, şöyle ki;

Örneğin 2.sheet [Nak.Akım(özkaynak)]; bu sheet 3 sayfadan oluşuyor. Yazdır dediğimizde 2.sheetteki 3 sayfa için toplam 9 tane çıktı alıyor. Bu sheet'teki 3 sayfanın tamamı önce "Sayfa 2/9", sonra "Sayfa 3/9", sonra "Sayfa 4/9" şeklinde numaralandırılıyor. 1den fazla sayfa içeren sekmeler için de aynı problem geçerli. Bunu nasıl çözebiliriz.
 
Bu şekilde deneyin.
Kod:
Sub Yazdir()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
    x = x + 1
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & ToplamSayfa & "\" & x
    Sheets(arr(i)).PrintPreview
Next
Next
End Sub
 
Bu şekilde deneyin.
Kod:
Sub Yazdir()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")
For i = 0 To UBound(arr)
    x = x + 1
For j = 1 To Sheets(arr(i)).HPageBreaks.Count + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & ToplamSayfa & "\" & x
    Sheets(arr(i)).PrintPreview
Next
Next
End Sub

Üstadım maalesef bu şekilde de olmadı. Hatta bu sefer, örneğin Sheet 2'deki [Nak.Akım(özkaynak)] 3 tane sayfanın her birinden 3'er tane çıkarıyor ve her birisinin sayfa numarası 2 olarak yazıyor. Yani aynı sheet içindeki sayfalarda sayfa numarası artırımı da yapmıyor. Umarım bir çözüm yolu olur, çünkü benim için gerçekten önemli. Emeğiniz için teşekkürler.
 
Bir de son olarak böyle deneyin.
Kod:
Sub Yazdir3()
arr = Array("Nak. Akım(toplam)", "Nak. Akım(özkaynak)", "Kaynak Akım", "Fin. Nak. Akım", "Bilanço")

For i = 0 To UBound(arr)
'Nak. Akım(toplam)
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a2:m22].Address
    Sheets(arr(i)).PrintOut
    i = i + 1
'Nak. Akım(özkaynak)
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a2:m18].Address
    Sheets(arr(i)).PrintOut
    x = x + 1
    Sheets(arr(i)).PageSetup.PrintArea = ""
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a19:m36].Address
    Sheets(arr(i)).PrintOut
    x = x + 1
    Sheets(arr(i)).PageSetup.PrintArea = ""
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a37:m53].Address
    Sheets(arr(i)).PrintOut
    i = i + 1
'Kaynak Akım
    x = x + 1
    Sheets(arr(i)).PageSetup.PrintArea = ""
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a1:m27].Address
    Sheets(arr(i)).PrintOut
    i = i + 1
'Fin. Nak. Akım
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a1:l37].Address
    Sheets(arr(i)).PrintOut
    x = x + 1
    Sheets(arr(i)).PageSetup.PrintArea = ""
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a39:l69].Address
    Sheets(arr(i)).PrintOut
    i = i + 1
'Bilanço
    x = x + 1
    Sheets(arr(i)).PageSetup.RightHeader = arr(i) & " " & 10 & "\" & x
    Sheets(arr(i)).PageSetup.PrintArea = [a1:k26].Address
    Sheets(arr(i)).PrintOut
Next
End Sub
 
üstadım maalesef bu da olmadı. Şöyle ki, yazdırma alanları sabit oldu, yazdırılacak sheetlerden birine ilave tablolar ekleyip sayfa sayısı artınca ieklenen sayfaları gözardı ediyor. Üzerinde çalışmakta olduğum detaylı bir excel var, herşey tamamlandı, sadece bu sayfa numarası olayı kaldı. Bu forumdan o kadar komplike ve yapılması mümkün değil dediğim şeyler öğrendim ki, benim excele bakışım tamamen değişti. Gelin görün ki normalde basit diye düşüneceğimiz sayfa numarası resmen bir bulmaca çıktı. Çözüm bulabilirsek gerçekten muhteşem olacak.
 
Belki biraz daha düşünüp daha detaylı bir kod yazılabilir ama benim şu sıra buna ayıracak vaktim yok, belki forumdaki diğer arkadaşlar size yardımcı olabilir.
 
Belki biraz daha düşünüp daha detaylı bir kod yazılabilir ama benim şu sıra buna ayıracak vaktim yok, belki forumdaki diğer arkadaşlar size yardımcı olabilir.

Çok sağol üstadım. Zaten çok sayıda kod yazarak yardımcı olmaya çalıştınız, teşekkür ederim. Başka arkadaşlardan da destek veren olursa çözeriz problemi inşallah. Çözemezsek de canımız sağolsun.
 
Geri
Üst