otomatik sayfa numarası

Katılım
16 Haziran 2005
Mesajlar
164
exceldeki listemi yazdırıken 1den fazla sayfalarda sağ alta 1/6 4/9 gibi toplam sayfa sayısı ve yazdırılan sayfaların numarasının otomatik çıkmasını istiyorum bilgisi olan arkadaşlara şimdiden teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Baskı özinlemeden ayarlar-üstbilgi/altbilgi-özet alt bilgi-sağkısıma aşağıdaki gibi yazarsanız istediğinizi elde edersiniz.

&[Sayfa]/&[ToplamSayfa]
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Veya, yine aynı menüden ....
 
Katılım
16 Haziran 2005
Mesajlar
164
her zaman hazır olarak

bu işlemin manuel olarak değilde sadece o dosya için otomatik olmasını istiyorum macro olarak mesela
 
Katılım
8 Haziran 2005
Mesajlar
114
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Dim sht As Worksheet
  For Each sht In Worksheets
    sht.PageSetup.CenterHeader = "Sayfa &P"
  Next sht
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kod:
......PageSetup.RightFooter = "Page &P of &N"
 
Katılım
8 Haziran 2005
Mesajlar
114
Kod:
'ÜST BİLGİ / ALT BİLGİ
Sub BilgiAmacliOlupWithKullanilmadi()

    Sheets(1).PageSetup.RightHeader = "Sağ Üst Bilgi"
    Sheets(1).PageSetup.CenterHeader = "Orta Üst Bilgi"
    Sheets(1).PageSetup.LeftHeader = "Sol Üst Bilgi"
    
    Sheets(1).PageSetup.RightFooter = "Sağ Alt Bilgi"
    Sheets(1).PageSetup.CenterFooter = "Orta Alt Bilgi"
    Sheets(1).PageSetup.LeftFooter = "Sol Alt Bilgi"

End sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ek:

Kod:
Böyle durumlarda "Makro kaydet" yöntemi gayet başarılıdır.
 
Katılım
8 Haziran 2005
Mesajlar
114
Bence Makro kaydet başarısızdır. Tüm sayfaları nasıl ayarlayacak, döngü lazım, sonra gereksiz satırları silmemiz gerekmezmi.

Makro kaydet sonucu

Option Explicit

Kod:
Sub Makro1()
'
' Makro1 Makro
' Makro muhasebe3 tarafından 24.06.2005 tarihinde kaydedildi.
'

'
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "Sayfa &P"
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.748031496062992)
        .RightMargin = Application.InchesToPoints(0.748031496062992)
        .TopMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.984251968503937)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.511811023622047)
        .PrintHeadings = False
        .PrintGridlines = True
        .PrintComments = xlPrintNoComments
        .PrintQuality = Array(120, 72)
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    ActiveWindow.SelectedSheets.PrintPreview
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
VBA'i biraz bilen ama koddaki "Sayfa &P / &N" esprisini yakalayamayan bir kullanıcı için, bence gayet iyi bir yöntemdir.

Gereksiz kısımlarını silip, ilavelerini kendisi zaten yapar. Ben sık, sık kullanırım...

Bu benim fikrim tabii...
 
Katılım
8 Haziran 2005
Mesajlar
114
Fikrinize şimdi katılıyorum. Kaydet unutulan kodları hatırlatır bize, yoksa Makro Kaydedip çalıştıran kullanıcı, gereksiz onlarca satırla boğuşur. Gerksiz satırları silip işlemleri döngü içnde kullanmak oldukça mantıklı bir yöntemdir. Yukarıdaki kodlarızn gereken kısmı bir döngü ile şu hale geldi:

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean) 
  Dim sht As Worksheet 
  For Each sht In Worksheets 
    sht.PageSetup.CenterHeader = "Page &P of &N"
  Next sht 
End Sub
:hey:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Döngüler VBA için en faydalı araçlardan biridir.

Gerektiği yerde gerektiği kadar kullanılırsa yazılan koddan o zaman en iyi performans alınır.

Ama, herkesin kendine göre bir kod yazma tarzı vardır..... işin orası ayrı bir konu...

Bana göre aşağıdaki tarzdan ufak bir kod, bu iş için yeterlidir. (ThisWorkboook modulüne yerleştirilmek üzere...)

[vb:1:413f1be0f3]Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.RightFooter = "Page &P of &N"
End Sub
[/vb:1:413f1be0f3]
 
X

xlsx

Misafir
kodlar havada uçuşmuş bu sayfada:) ellerinize saglık:) :D
 
Üst