Çoklu yazdırma alanı belirleme

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
Merhaba arkadaşlar.
Çok fazla çalışma sayfasıyla çalışıyorum. Birden fazla çalışma sayfasını aynı anda yazdırma alanı belirleme şansım var mı?
Yardımlarınız için şimdiden teşekkür ederim.
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
569
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Sayfalar aynı Excel içinde yoksa başka kitap açtırıp yazdiracakmisin?
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Detay vermemişsiniz. Mesala bu kodlar tüm sayfalarda A1-C5 arasını yazdırma alanı olarak belirler.

Belirli sayfalara ve farklı yazdırma alanları ekleyecekseniz.
Sheets(i).PageSetup.PrintArea = "$A$1:$C$5"
Bu satırı her sayfa için ayrı ayrı düzenleyip eklemelisiniz. i yerine sayfa numarasını yada çift tırnak içerisinde sayfa adını yazabilirsiniz.

Kod:
Sub Yazdr()

Dim i As Integer

For i = 1 To Worksheets.Count
   
    Sheets(i).PageSetup.PrintArea = "$A$1:$C$5"

Next i

End Sub
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
569
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Sheets("sayfaadin"). Select
ActiveWindow. SelectedSheets. PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=false

Bunu çoğalt sayfa adını değiştir telefondan yazdım,
Yukarıdaki işlemi module ekle modülü çalıştır düğmeye ata.

istersen sayfalarıda foreech döngüsü ile yazdirabilirsin. Akşam ancak bakarım.
 

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
Teşekkür ederim. Acelesi yok ben de yarın sabah bakacağım zaten.
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
569
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
Dosyanın atarsan daha iyi olur, ikincisi kitap içindeki sayfaları yazdırmak istiyorsun tek düğme ile
 

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
Sayfaların satır ve sütun sayıları çok farklı. Mesela 1 sayfadan 150 tane var. Aynı şekilde 5 tane çoklu sayfam var. Yani 5X150 hepsinin yazdırma alanı farklı olması gerekiyor bunların yazdırma alanlarını 150şerli olarak seçerek belirleme şansım var mı?
 

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
Tek kitapçık içinde 5X150 sayfa var lakin her sayfada aldırmak istemediğim alanlar da var.
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Yukarıda eğer her sayfada farklı alanlar belirlenecekse;
Sheets(i).PageSetup.PrintArea = "$A$1:$C$5" kodunu değişiklik yapacağınız sayfa kadar uygun şekilde ekleyerek makro yapıp çalıştırabilirsiniz demiştim.

Ama 5x150 gibi bir durumda kod gereksiz yere aşırı şismiş olur ve yazarken çok daha fazla zaman kaybedersiniz.
Bunun için makroyu biraz geliştirdim. Dosyanıza en sona Tmp isimli bir sayfa ekleyip, resimde görüldüğü gibi her sayfa için, sayfa sırasını, yazdırma alanlarının başlangıç ve bitiş referanslarını yazıp, makroyu çalıştırırsanız, makro ile yazdırma alanları belirlenecek.

Daha farklı bir şey istiyorsanız, nasıl olur bilmiyorum. Yazdırma alanları her sayfada sabit olmadığı için bir şekilde excele o alanları bildirmelisiniz.

233738

Sayfalarda atlamak istedikleriniz olursa; Örn. 4. sıradaki sayfa onu listeye dahil etmeyip bir sonraki sayfadan devam edersiniz.
Örnek dosyayı da ekledim. Kendi dosyanıza uyarlarsınız.


Kod:
Sub Yazdr()

Dim i As Integer
Dim x As Integer
Dim y As String


For i = 1 To Sheets("Tmp").Cells(Rows.Count, 1).End(xlUp).Row

    x = Sheets("Tmp").Cells(i, 1)
    y = Sheets("Tmp").Cells(i, 2) & ":" & Sheets("Tmp").Cells(i, 3)
 
            Sheets(x).PageSetup.PrintArea = y

Next i

End Sub
 

Ekli dosyalar

Son düzenleme:

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
Hayırlı sabahlar hocam. Elinize ve emeğinize sağlık. Çok güzel olmuş. Ama her sayfanın adını ve yazdırma alanlarını teker teker yazmaktan bahsediyorsunuz. Öyle ki bazı excel kitaplarımda 9X150 sayfadan oluşuyor o da 1350 sayfa yapıyor. Sayfa adlarını yazana kadar yazdıracağım sayfaları seçerek seçili sayfalarda yazdıracağım alanı da seçtikten sonra sayfaların teker teker Alt, S, D,B kısayolunu kullanarak yazdırma alanını belirlemek benim için daha kolay olacak. Ben daha basit bir yolu var mı diye sormuştum.
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
İyi günler. Yaptığınız işlemlerinizde standart olmadığı için; malesef her türlü değişkeni excele bildirmek zorundasınız..
Dediğiniz gibi bu tür durumlarda elle işlem yapmak daha mantıklı.

Haa atıyorum 1350 verili 30-40 tane dosyanız vardır. Ve o dosyalarda hep aynı yerlere işlem yapmak gerekiyordur.
Bir kere referansları girersiniz. Aynı makroyu 40 dosyanızda kullanırsınız. Böyle bir durumda uğraşmaya değebilir.
Ama sizin durumunuzda dediğiniz gibi gerek yok.
 

ismailmustafa

Altın Üye
Katılım
10 Nisan 2006
Mesajlar
108
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
28-04-2028
İyi günler. Dosyalarımda aynı sayfaları kullanıyorum. Uğraştığıma değer. Şayet kısayolla yapma imkanım olursa diye sizleri meşgul ettim. Hakkınızı helal edin. Kolay gelsin. Hayırlı akşamlar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aklıma şöyle bir çözüm yolu geldi. Ama ne kadar pratik olur bilemedim.

Bir Userform üzerinde sayfa isimleri ve yazdirma alanları listelenebilir.

Siz bu liste üzerine çift tıklayıp yeni yazdırma alanını belirleyerek sonrasında yazdirabilirsiniz.
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
597
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Helal olsun. İyi akşamlar :)
İyi günler. Dosyalarımda aynı sayfaları kullanıyorum. Uğraştığıma değer. Şayet kısayolla yapma imkanım olursa diye sizleri meşgul ettim. Hakkınızı helal edin. Kolay gelsin. Hayırlı akşamlar.
 
Üst