• DİKKAT

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

Çoklu Sayfa Yazdırma...

Katılım
28 Haziran 2007
Mesajlar
168
Excel Vers. ve Dili
OFFİCE 2016 (Türkçe)
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...
 
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
 
İ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...
 
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.
 
To:=25 kısmını To:=[e3] şeklinde deneyiniz.
 
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...
 
Geri
Üst