• DİKKAT

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

Çözüldü Çıktı Sayısı Kadar, Sayfaların Üzerine Sayfa Sayılarını Yazdırmak..

Katılım
13 Ekim 2021
Mesajlar
32
Excel Vers. ve Dili
365-TR
Excel dosyasında çıktı sayısı kadar belirlediğimiz yere (alana) sayfa sayılarını yazdırmak mümkün mü?
Bu işlem yapılabiliyorsa nasıl yapabileceğimi anlatır mısınız?

Teşekkürler.
 
Merhaba,
Excel için
* Sayfa Düzeni
* Sayfa yapısı
* Üst/Alt bilgi
* Özel alt bilgi
* Sayfa numarası ekle (tek tek sayfaların numarasını verir) / Sayfa sayısı ekle (toplam sayfayı verir)

Word için
* Ekle
* Sayfa numarası
* Sayfanın sonu
 
Merhaba,
Excel için
* Sayfa Düzeni
* Sayfa yapısı
* Üst/Alt bilgi
* Özel alt bilgi
* Sayfa numarası ekle (tek tek sayfaların numarasını verir) / Sayfa sayısı ekle (toplam sayfayı verir)

Word için
* Ekle
* Sayfa numarası
* Sayfanın sonu
Bu çıktı aldığımız sayfaların sayılarını yazıyor eve ama benim yukarıda da anlattığım gibi çıktı sayısı kadar yazdırmak.
Örneğin excel sayfamız veya word sayfamız 1 tane olsun ben bu sayfalardan 20 tane çıktı alacağım ve bunların üzerine 1 den 20 ye kadar yazdırılmasını istiyorum.
Eğer bu şekilde yazılmıyorsa başka nasıl bir yol izleye bilirim.
 
Word makroları konusunda bilgim yok.

Excelde aşağıdaki makroyu kullanırsanız size kaç nüsha yazdırılacağını sorar ve girdiğiniz sayı kadar yazdırır. Yazdırmadan önce F1 hücresine kaçıncı nüsha olduğunu yazar:

PHP:
Sub yaz()
adet = InputBox("Kaç nüsha yazdırılacak?", "Nüsha Sayısı")
If IsNumeric(adet) Then
    For i = 1 To adet
        [F1] = i
        PrintOut
    Next
End If
End Sub

Not: Kağıt ve toner israfını önlemek için deneme yaparken nüsha sayısını düşük tutmanızı tavsiye ederim.
 
Word makroları konusunda bilgim yok.

Excelde aşağıdaki makroyu kullanırsanız size kaç nüsha yazdırılacağını sorar ve girdiğiniz sayı kadar yazdırır. Yazdırmadan önce F1 hücresine kaçıncı nüsha olduğunu yazar:

PHP:
Sub yaz()
adet = InputBox("Kaç nüsha yazdırılacak?", "Nüsha Sayısı")
If IsNumeric(adet) Then
    For i = 1 To adet
        [F1] = i
        PrintOut
    Next
End If
End Sub

Not: Kağıt ve toner israfını önlemek için deneme yaparken nüsha sayısını düşük tutmanızı tavsiye ederim.
Hocam teşekkürler. İlk dakikadan beri denemeye devam ediyorum :) Umarım başarırım.
 
Excel için alternatif,
Sayfa alt orta kısmına numaraları yazar.
Kod:
Sub OzelYaz()
    Dim s As Integer, i As Integer

    s = Application.InputBox("Kaç Sayfa Yazdırayım", Type:=2)
    Application.EnableEvents = False
    For i = 1 To s
        ActiveSheet.PageSetup.CenterFooter = i
        ActiveSheet.PrintOut
    Next i
    Application.EnableEvents = True
    Cancel = True

End Sub

Word için önce sayfa altına bir adet yer imi ekleyin ve ismini Baski olarak girin
Kod:
Sub OzelYaz()
Dim BmName As String
Dim BmRange As Object
s = InputBox("Kaç Sayfa Yazdırayım", "Baskı Adedi")

For i = 1 To s
If ActiveDocument.Bookmarks.Exists("Baski") Then
    BmName = "Baski"
    Set BmRange = ActiveDocument.Bookmarks(BmName).Range
    BmRange.Text = i
    ActiveDocument.Bookmarks.Add Name:=BmName, Range:=BmRange
End If
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
Next
Cancel = True
End Sub
 
Word makroları konusunda bilgim yok.

Excelde aşağıdaki makroyu kullanırsanız size kaç nüsha yazdırılacağını sorar ve girdiğiniz sayı kadar yazdırır. Yazdırmadan önce F1 hücresine kaçıncı nüsha olduğunu yazar:

PHP:
Sub yaz()
adet = InputBox("Kaç nüsha yazdırılacak?", "Nüsha Sayısı")
If IsNumeric(adet) Then
    For i = 1 To adet
        [F1] = i
        PrintOut
    Next
End If
End Sub

Not: Kağıt ve toner israfını önlemek için deneme yaparken nüsha sayısını düşük tutmanızı tavsiye ederim.
Hocam sanırım ben yapamadım. Deniyorum ama olmuyor. Çıktı sayısını soruyor fakat numaraları yazmıyor.
 
Excel için alternatif,
Sayfa alt orta kısmına numaraları yazar.
Kod:
Sub OzelYaz()
    Dim s As Integer, i As Integer

    s = Application.InputBox("Kaç Sayfa Yazdırayım", Type:=2)
    Application.EnableEvents = False
    For i = 1 To s
        ActiveSheet.PageSetup.CenterFooter = i
        ActiveSheet.PrintOut
    Next i
    Application.EnableEvents = True
    Cancel = True

End Sub

Word için önce sayfa altına bir adet yer imi ekleyin ve ismini Baski olarak girin
Kod:
Sub OzelYaz()
Dim BmName As String
Dim BmRange As Object
s = InputBox("Kaç Sayfa Yazdırayım", "Baskı Adedi")

For i = 1 To s
If ActiveDocument.Bookmarks.Exists("Baski") Then
    BmName = "Baski"
    Set BmRange = ActiveDocument.Bookmarks(BmName).Range
    BmRange.Text = i
    ActiveDocument.Bookmarks.Add Name:=BmName, Range:=BmRange
End If
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
Next
Cancel = True
End Sub
Excel işe yaradı. Dediğiniz gibi Sayfanın alt orta kısmına yazıyor. Peki istediğimiz yerde (belirlediğimiz yerde) yazması mümkün mü.
 
Excel için alternatif,
Sayfa alt orta kısmına numaraları yazar.
Kod:
Sub OzelYaz()
    Dim s As Integer, i As Integer

    s = Application.InputBox("Kaç Sayfa Yazdırayım", Type:=2)
    Application.EnableEvents = False
    For i = 1 To s
        ActiveSheet.PageSetup.CenterFooter = i
        ActiveSheet.PrintOut
    Next i
    Application.EnableEvents = True
    Cancel = True

End Sub

Word için önce sayfa altına bir adet yer imi ekleyin ve ismini Baski olarak girin
Kod:
Sub OzelYaz()
Dim BmName As String
Dim BmRange As Object
s = InputBox("Kaç Sayfa Yazdırayım", "Baskı Adedi")

For i = 1 To s
If ActiveDocument.Bookmarks.Exists("Baski") Then
    BmName = "Baski"
    Set BmRange = ActiveDocument.Bookmarks(BmName).Range
    BmRange.Text = i
    ActiveDocument.Bookmarks.Add Name:=BmName, Range:=BmRange
End If
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
Next
Cancel = True
End Sub
World de çalıştıramadım. Sanırım Yer imi kısmında falan hata yapıyorum.
 
Yusuf beyin çözümünde [F1] hücresine numara yazılıyor. Eğer "F1" hücresi yazdırma alanı dışında kalıyorsa sayfada çıkmaması normal. Siz bu "F1" hücresini değiştirin. Mesela ben B20 olarak belirledim.

Kod:
Sub OzelYaz()
    Dim s As Integer, i As Integer

    s = Application.InputBox("Kaç Sayfa Yazdırayım", Type:=2)
    Application.EnableEvents = False
    For i = 1 To s
        'ActiveSheet.PageSetup.CenterFooter = i
        [B20] = i
        ActiveSheet.PrintOut
    Next i
    Application.EnableEvents = True
    Cancel = True

End Sub
 
Hocam sanırım ben yapamadım. Deniyorum ama olmuyor. Çıktı sayısını soruyor fakat numaraları yazmıyor.
Ben F1 hücresine yazacak şekilde belirtmiştim. Siz kodu nasıl değiştirip uyguladınız bilmiyorum. Dosyanızı paylaşırsanız iyi olur.
 

Hocam linkler bunlar. Sayıları ellerimizle yazmak yerine otomatik olarak çıkartmak istiyoruz fakat başaramıyoruz. 24 yazan kısımlara otomatik çıktı adedi kadar sayfa sayılarını yazmasını istiyoruz.

Emekleriniz İçin Teşekkürler.
 
Excel dosyanızda "Texbox3" ü silin. Çünkü bu tip texbox'da fontu istediğiniz gibi büyültemiyorsunuz. Onun yerine diğer texbox türünü ekleyin. Şöyle:
* Geliştirici sekmesi
* Tasarım modu
* Ekle/ActiveX denetimleri/Metin kutusu
* Sağ tık / Özellikler / Font (istediğinizi ayarlayın)

Sonra modül ekleyip

Kod:
Sub yaz()
'Modül ekleyin ve yapıştırın.
adet = InputBox("Kaç nüsha yazdırılacak?", "Nüsha Sayısı")
If IsNumeric(adet) Then
    For i = 1 To adet
        ActiveSheet.TextBox1.Text = i
        ActiveSheet.PrintOut
    Next
End If
End Sub

word için sizin belgenize yer imi ve Makro modülü eklendi. Dosya "docm" uzantılı kaydedildi.
Word belgesi
 
Excel dosyanızda "Texbox3" ü silin. Çünkü bu tip texbox'da fontu istediğiniz gibi büyültemiyorsunuz. Onun yerine diğer texbox türünü ekleyin. Şöyle:
* Geliştirici sekmesi
* Tasarım modu
* Ekle/ActiveX denetimleri/Metin kutusu
* Sağ tık / Özellikler / Font (istediğinizi ayarlayın)

Sonra modül ekleyip

Kod:
Sub yaz()
'Modül ekleyin ve yapıştırın.
adet = InputBox("Kaç nüsha yazdırılacak?", "Nüsha Sayısı")
If IsNumeric(adet) Then
    For i = 1 To adet
        ActiveSheet.TextBox1.Text = i
        ActiveSheet.PrintOut
    Next
End If
End Sub

word için sizin belgenize yer imi ve Makro modülü eklendi. Dosya "docm" uzantılı kaydedildi.
Word belgesi
Hocam Allah razı olsun. Bilgisayarcı işini yapsa uğraşmayacağız. Excel işe yaradı. World ü yapamadım. Ama aynı şekilde World Dosyasını Excele taşırım aynı şekilde işlemleri unun üzerinde gerçekleştiririm. Böylelikle oda olmuş olur. Ellerinize Sağlık. Çok teşekkürler..
 
Amin, sağolasınız. 14 nolu mesajdaki word dosyası sizin dosyanızın aynısı. İçinde makrosu hazır. Sadece makroyu çalıştır diyeceksiniz.
 
MS Word makroları, MS Excel kadar kolay değildir. Excel'deki hazır event'lerin (yordamların) birçoğu Word uygulamasında bulunmaz. Bazıları için Class module kullanarak, bu sorun aşılabilir.

Bu konu hakkında Class Module uygulamasıyla, linkte verilen Word dokümanında "Before_Print" yordamı geliştirilmiştir.

Linkteki dokümanda dokümanı kapatmadan her yazdırdığınızda , dokümanın sağ üst köşesinde Üst Bilgi (Header) içinde çıktı no'sunu yazan makro, ekli dosyada verilmiştir.


.
 
Son düzenleme:

Hocam linkler bunlar. Sayıları ellerimizle yazmak yerine otomatik olarak çıkartmak istiyoruz fakat başaramıyoruz. 24 yazan kısımlara otomatik çıktı adedi kadar sayfa sayılarını yazmasını istiyoruz.

Emekleriniz İçin Teşekkürler.
Muhtemelen sorununuz diğer hocalarımız sayesinde çözülmüştür.

Örnek dosyanızda verdiğim makroyu uygulamamışsınız, bu nedenle nasıl uyguladınız da neden olmadı bilmiyorum.

Siz bir metin kutusunda bu sonucu görmek istiyorsunuz anladığım kadarıyla. Dosyanızdaki metin kutusunu seçtiğimde formül kutusunda =#BAŞV! hatası vardı. Onu verdiğim makroyla uyması için =F1 olarak değiştirdim ve dosyaya #5 nolu mesajda verdiğim makroyu ekledim. Düzgün şekilde çalıştı.

Eğer baştan dosya paylaşsaydınız ya da işlemi textboxta uygulayacağınızı belirtseydiniz ona göre hızlı çözüm bulabilirdiniz.
 
Geri
Üst