• DİKKAT

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

Birden çok sayfayı tek seferde yazdırma

Katılım
27 Kasım 2007
Mesajlar
664
Excel Vers. ve Dili
ofis 2016 Türkçe
Selam,
Hayırlı ramazanlar,
Tüm forum üyelerine teşekkür ederim.

Öncelikle anlaşılması için kısa bir açıklama yapmak istiyorum.

Nüfüs cüzdanı, ikametgah bilgileri kan grubu bilgileri alabileceğimiz farklı formlar bunları tek bir giriş sayfasından basitçe bir formül düşeyara) ile oluşturup bu bilgilere ulaşıyoruz.
Ancak her bir kişiye ait bilgileri her defasında ayrı ayrı yazdırmak yerine bunun için bir kod kullanmamız mümkün müdür.

İlgilenen yardımını esirgemeyen herkese çok teşekkür ederim.
 

Ekli dosyalar

Teşekkürler, size de.

Eklediğiniz dosya boş maalesef.
 
Tam olarak ne istiyorsunuz? Yazdırma makrosunu çalıştırdığınızda o anda bilgileri bulunan kişiler için Form 1, Form 2 ve Form 3'ün yazdırılmasını mı, yoksa Örneğin form 1'in veriler sayfasında bulunan her kişi için ayrı ayrı yazdırılmasını mı yoksa ikisi birlikte yani veriler sayfasındaki her kişi için 3 sayfanın da ayrı ayrı yazdırılmasını mı?
 
Sayın yusuf44 ilginiz için sağolun.
Evet son dediğiniz gibi
Her kişi için.
Aslında şöyle;
Yazdırma sayfasında bulunan Başlangıç ve bitiş bilgileri bunun için düşünmüştüm.
Başlangıç ve bitiş noları arasındaki kişiler için bu formların yazdırılmasını isteyeceğiz.
 
Aşağıdaki kodu bir modüle kopyalayıp deneyiniz. Makro çalıştığında her sayfada istediğiniz verileri getirip yazdırır. Bir defada 3 sayfanın formlarını da istediğiniz sıra numaralarına göre ayrı ayrı yazdırır.

Kod:
Sub yazdır()
Set s1 = Sheets("VERİLER")
Set s2 = Sheets("YAZDIRMA SAYFASI")
Set s3 = Sheets("FORM 1")
Set s4 = Sheets("FORM 2")
Set s5 = Sheets("FORM 3")

baş1 = s2.[G5]
bit1 = s2.[H5]

baş2 = s2.[G6]
bit2 = s2.[H6]

baş3 = s2.[G7]
bit3 = s2.[H7]

son = s1.Cells(Rows.Count, "C").End(3).Row

For i = baş1 To bit1
    s3.Select
    s3.[C1] = i
    s3.[E7] = WorksheetFunction.VLookup(i, Sheets("VERİLER").Range("C8:L" & son), 2, 0)
    s3.[E9] = WorksheetFunction.VLookup(i, Sheets("VERİLER").Range("C8:L" & son), 3, 0)
    s3.[E11] = WorksheetFunction.VLookup(i, Sheets("VERİLER").Range("C8:L" & son), 7, 0)
    s3.PrintOut
Next

For j = baş2 To bit2
    s4.Select
    s4.[C1] = j
    s4.[E7] = WorksheetFunction.VLookup(j, Sheets("VERİLER").Range("C8:L" & son), 2, 0)
    s4.[E9] = WorksheetFunction.VLookup(j, Sheets("VERİLER").Range("C8:L" & son), 3, 0)
    s4.[E11] = WorksheetFunction.VLookup(j, Sheets("VERİLER").Range("C8:L" & son), 6, 0)
    s4.PrintOut
Next

For k = baş3 To bit3
    s5.Select
    s5.[C1] = k
    s5.[E7] = WorksheetFunction.VLookup(k, Sheets("VERİLER").Range("C8:L" & son), 2, 0)
    s5.[E9] = WorksheetFunction.VLookup(k, Sheets("VERİLER").Range("C8:L" & son), 3, 0)
    s5.[E11] = WorksheetFunction.VLookup(k, Sheets("VERİLER").Range("C8:L" & son), 10, 0)
    s5.PrintOut
Next


End Sub
 
Sayın yusuf44
ekteki gibi koyala yapıştır yaptım.
Ancak her bir çıktı için sanki, kayıt etme yolu istiyor. Bu da sayı çok olduğunda bu atlatmak mümkün müdür.
Yani kayıt yapmadan çıktı almamızın imkanı var mı?
Eğer imkanı yok ise, bu dosya nın olduğu klasöre;
ya kendi sıralı bir ad vererek yada sıra no ile kayıt yaparak geçmesini sağlayabilir miyiz.
Tekrar teşekkürler.
 

Ekli dosyalar

Verdiğim kodda kayıtla ilgili herhangi bir şey yok. Kodda belirtilen sıra numaralarına göre o kişinin formunun yazdırılması var sadece.

Muhtemelen yazıcı seçiminiz "pdf olarak kaydet" olarak ayarlanmıştır. Normal bir yazıcı seçtikten sonra makroyu çalıştırın.
 
Hocam formülü bugün asıl dosyaya deneme imkanı buldum.
Ancak, her bir formun uzun formlar olduğu düşünüldüğünde, (module makro da; her bir form için yaklaşık 50 - 60 adet düşeyara uygulamak gerekecek.
Bu kod maalesef uygulanması zor duruyor.
Bunun dışında sıra numaraları ile ilgili bir makro uygulanabilir mi.
Örneğin başlangıç bitiş noları verilen hücreden bilgi alıp tek tek artırıp bunu da yazdırmak için bir kod kullanılabilir mi?
 
Kod zaten o işi yapıyor. Örnek dosyanızda veriler DÜŞEYARA ile değil de manuel girildiği için ben kodları örnek dosyanıza göre ayarladım. Eğer formunuzda verileri DÜŞEYARA formülüyle getirirseniz kodlardaki Vlookup olan satırlar iptal edilebilir. Böylece kod sadece ilgili formdaki sicil numarasını değiştirir. Diğer veriler formüllerle o forma gelir ve yazdırma işlemi yapılır.
 
Geri
Üst