Çoklu Sayfa Yazdırma...

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
Merhabalar, herkese kolaylıklar diliyorum.

Kaydetme yöntemi ile yapmaya çalıştım, ancak ne yazık ki her defasında aynı yerde hata almaktayım.

Yazdırmaya çalıştığım çalışma sayfasının ismi VERİLERİM şeklindedir.
Yazdırmaya çalıştığım çalışma sayfasında alt alta 25 sayfa bulunmaktadır.
Her sayfada 2 satırlık veri bulunmaktadır.
Her satıra başka sayfadan sırası ile veri aktarımı yapılmaktadır.
Diğer sayfalardan 1 ila 50 arasında veri alınmaktadır.
Gelen veriler 1. satırdan başlayarak ilgili satırlara aktarılmaktadır.
Bu nedenle veri sayısına göre bazı satırlar boş kalmaktadır.

Sayfanın E3 hücresinde =YUKARIYUVARLA((MAK(tüm_dosyalarım!N2:N1001)/2);0) formülü yer almaktadır.
Formül ile hangi sayfaya kadar yer alan satırlarda dolu verilerin olduğu gösterilmektedir.

Sub cokluyazdırma()
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=25, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
End Sub

Bu makro ile VERİLERİM sayfasının 1 ila 25. sayfa aralığını yazdırmaktayım.

Yapmak istediğim ise, makroda yer alan 25 rakamını aynı sayfada yer alan E3 hücresinde bulunan değeri yazdırmak suretiyle sayfayı yazdırmak istiyorum.

Örneğin,
=YUKARIYUVARLA((MAK(tüm_dosyalarım!N2:N1001)/2);0) = 11 ise 1 ila 11. sayfaların yazdırılmasını,

=YUKARIYUVARLA((MAK(tüm_dosyalarım!N2:N1001)/2);0) = 3 ise 1 ila 3. sayfaların yazdırılmasını,

=YUKARIYUVARLA((MAK(tüm_dosyalarım!N2:N1001)/2);0) = 21 ise 1 ila 21. sayfaların yazdırılmasını,

istiyorum.

Ancak bir türlü bunu beceremedim.

Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.

Koronasız güzel günler görmek dileği ile...
 

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
Yok mu bir yardımı dokunacak uzman.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Ben yazdıklarınızdan şunu anladım, aşağıdaki kod örnektir, kendinize göre düzeltiniz.
Kod:
Sub yazdır()
If [e3] = 1 Then Range("a4:d25").PrintOut
If [e3] = 2 Then Range("a26:d50").PrintOut
'............
End Sub
 

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
İlginize teşekkür ederim. Yazdığınız kodda işimi görecektir muhtemelen. Ancak şu an için evde olduğum ve yazıcım olmadığı için deneyemiyorum.

Benim yapmak istediğim ise;

Sub cokluyazdırma()
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=25, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
End Sub

makrosunda To:=25 değerinin sayfadaki E3 hücresindeki sayı olması.

Saygılarımla...
 

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
Bu makro ile de yapabilirim aslında.

Sub yazdır()
If [e3] = 1 Then Range("a1:d3").PrintOut
If [e3] = 2 Then Range("a1:d5").PrintOut
If [e3] = 3 Then Range("a1:d7").PrintOut
'............
End Sub

şeklinde olur, ama verilerin karmaşık olabileceğini düşündüğüm için daha basit bir kod arıyorum.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
To:=25 kısmını To:=[e3] şeklinde deneyiniz.
 

katip16487

Altın Üye
Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
Altın Üyelik Bitiş Tarihi
17-03-2025
Seyit Tiken, ilgine ve bilgine teşekkür ederim.

Teşekkürler.

Bir konuda bilgi almak istiyorum.

[E3] şeklinde yazdığımız aslında Sayfa1.E3 yazmanın kısayolu mudur?

Saygılarımla...
 
Üst