Makrolar ile Sayfa Başlıklarını Yazdırma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Kısa Açıklama

Makrolar ile Sayfa Başlıklarını Yazdırma isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
Diğer
Bu Çalışma Kitabındaki kod ile Sayfa 2 deki (49 Satırdaki) yazdırma başlığının Sayfa 2, Sayfa 3, Sayfa 4, Sayfa 5 ve Sayfa 6 da olmasını sağlayan mevcut kodun Sayfa 7 ve Sayfa 8 de farklı başlılar olması sebebiyle sadece Sayfa 2, Sayfa 3, Sayfa 4, Sayfa 5 ve Sayfa 6 da görnmesini sağlamak için mevcut kodun iyişlertirilmesi husus yardımlarınızı talep ediyorum.​
 

Ekli dosyalar

  • Ekran görüntüsü 2025-03-08 140448.webp
    Ekran görüntüsü 2025-03-08 140448.webp
    47.8 KB · Görüntüleme: 41
  • Kitap 100.xlsb
    Kitap 100.xlsb
    186 KB · Görüntüleme: 3
 
Soruyu tam anlamadım.
Örnek belgede biri gizli olmak üzere toplam 2 adet sayfa var.
Anlaşılan o ki; örnek belgeniz gerçek belgeden farklı yapıda.

Ayrıca YAZDIRMA işleminin;
-- ilgili sayfa aktif iken klasik menü üzerindeki düğmeyle veya CTRL+P kısayol tuşuyla mı yapılacağı,
-- yoksa sayfalardan birine veya birkaçına yerleştirilecek düğmelere atanacak makro koduyla mı yaptırılacağı,
-- tek tıklamayla tüm sayfaların mı yazdırıldığı, sayfalardan her birinin ilgili sayfa seçilerek (aktif sayfa haline getirilerek) tek tek mi yazdırılacağı,
gibi hususlar net değil.
 
Bu durumda sayfa isimleri üzerinden hareket etmek daha doğru gibi görünüyor.
Koddaki döngü içinde sayfa numarasından hareket etmek yerine sayfa isimlerinden hareket etmek daha mantıklı gibi görünüyor.

If i = 1 Or i = 2 Or ..... yerine
If i.Name = "İŞ GÜV " Or i.Name = "BELİRLİ İŞ SÖZLEŞMESİ" Or...... gibi bir yapı düşünülebilir.
Bu şekilde, 49'uncu satırın başlık olarak kullanılacak sayfa isimleri kodda belirtilip,
ActiveSheet.PageSetup.PrintTitleRows = "$49:$49"
diğer sayfalar (ELSE kısmı) için ise
ActiveSheet.PageSetup.PrintTitleRows = "" yerine ActiveSheet.PageSetup.PrintTitleRows = "$26:$26" gibi düşünülebilir.
 
Çalışma kitabı açıldığında makro aktif sayfa haline getirilerek tek tek ve toplu olarak yazdırma işlem CTRL+P ile yapılacak, If i = 1 Or i = 2 Or ..... İŞ GÜV safasındaki sayfaları ifade eder.
 
En baştan beri yazılan şeyleri de TAM OLARAK anlamamıştım ve
başka bir anlaşılmaz ibare de son mesajla geldi "tek tek ve toplu olarak".

-- "Üstte yinelenecek satır",
bir excel sayfası yazdırıldığında bu tek excel sayfasının yazıcıdan alınacak her bir sayfasında olmak üzere, o sayfadaki bir satırı ifade eder.
-- "Üstbilgi" olarak eklenecek bilgi.

Bu ikisi aynı şey değil ve sizin olayınızda bahse konu şey hangisidir onu da bilemiyorum.

-- İŞ GÜV. sayfası yazıcıya gönderildiğinde 10 sayfa tutuyor (istek sadece bu excel sayfası için midir net değil),
-- Gizli durumdaki BELİRLİ İŞ SÖZLEŞMESİ sayfası ise 2 sayfa tutuyor (istek bu excel sayfasını da ilgilendiriyor mu anlaşılmıyor),
-- Gerçek belgede başka sayfalar da var mıdır, örnek belgede olmayıp gerçek belgede olan başka sayfaların, açtığınız bu konu ve işlemle bir ilgisi/bağlantısı var mıdır orası da belli değil.
 
@YasarPiskin
Önce bundan önceki mesajımı okuyun.

İsteğiniz sadece İŞ GÜV. sayfası ile ilgili ise, mevcut kodu aşağıdakiyle değiştirin.

Ben işlemin;
-- sadece İŞ GÜV. sayfası için geçerli olacağını,
-- 2 ve 3'üncü sayfa için 49'uncu satırın,
-- 7 ve 8'inci sayfa için ise 77'nci satırın
üstte yinelenmesi istenildiği gibi varsaydım.


Siz kendi isteğinize göre;
-- üstte yinelenecek satır numaralarını ve
-- bunların hangi sayfalar için geçerli olacağını
değiştirirsiniz.

Kod:
İndirmek için giriş yapmanız gerekmektedir.
(19 satır)
 
Çözüm
Verdiğim kodda hata yapmışım, ilk kod satırında yer alan;
If Not ActiveSheet.Name <> "İŞ GÜV " Then Exit Sub
kısmı
If ActiveSheet.Name <> "İŞ GÜV " Then Exit Sub
olacak idi (önceki cevabımdaki kodu güncelledim, sayfayı yenileyerek kodun son haline bakın).

Böylece verdiğim kod sadece İŞ GÜV sayfasında işlem yapacak.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst