• DİKKAT

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

Yazdırırken sayfa biriktirme sorunu

Katılım
11 Nisan 2009
Mesajlar
43
Excel Vers. ve Dili
2010 TR
Makro ile bir rapor programı yaptım. Veritabanı olarak ayrı sayfada bir liste oluşturdum. Bir sayfa da raporun kendisi. Tek tıklamayla listedeki her kişi rapor sayfasındaki yerine yerleştiriliyor, değerleri de yerine konuluyor,yazdırılıyor ve sonraki kişiye geçiliyor. Aynı sayfada yeni kişinin bilgileri beliriyor ve yine "yazdır" komutu veriliyor. Buradaki sorun şu:
Yazıcı her "yazdır" komutunu ayrı bir iş olarak algılıyor ve her sayfadan sonra bir bekleme yapıyor. Bu, zaman kaybına ve yazıcı lazer olduğu için fazla ısınmaya ve toner yanmasına sebep oluyor.
Sorum şu :
arka arkaya gönderilen sayfaları bellekte toplatacak, sonra bunları tek iş olarak yazıcıya gönderecek bir VBA komutu var mı?

İngilizce ve türkçe sayfalarda bir çözüm bulamadım sanırım ancak ileri basic bilgisi olan bir arkadaş yardımcı olabilecek bu konuda... yardımcı olana şimdiden teşekkürler.
 
Selamlar,

Kişi bilgilerini tek bir sayfada alt alta aktardıktan sonra sayfayı yazdırırsanız istediğiniz sonuca ulaşabilirsiniz.
 
Dosyayı buraya yüklemeye çalıştım ama boyutu fazla ve küçültemedim çünkü anlamı kayboluyor.
durum biraz farklı:
Bir liste sayfası var. Birçok kişi alt alta sıralı ve her kişinin satırında kendine ait değerler var (tıbbi veriler).
Bir de standartlar ve raporlar sayfası var. Yani yaşa ve boya göre beklenen değerler var. Bir kişinin raporunu çıkarmaya çalıştığımıza ismi rapor sayfasında beliriyor, elde edilen ölçüm değerleri ve o kişinin yaşına ve boyuna göre beklenen değerleri listeden bulunuyor, rapora yerleştiriliyor ve print ediliyor. Sonra sıradaki kişiye geçiliyor.
Yapılan bu işlemler her kişi için ayrı yapılması gerektiğinden ve rapor formatı sabit olduğundan tek çözüm yolu olarak komutlarla sayfaları biriktirerek toplu olarak yazıcıya göndermek olduğunu düşünüyorum. Yani sayfalar hafızada biriktirilirken ve print komutu verilirken bir "sayfalar buradan başlıyor" ve " burada bitiyor" komutu olması gerektiğini düşünüyorum.
 
Peki bu işleri yazıcınız çevrimdışıyken yapsanız ya da yazıcınızı duraklatıp yapsanız sonra da toplu yazdırsanız olmaz mı acaba?
 
Selamlar,

Raporlama için kullandığınız sayfanızı alt alta kopyalarsanız ve her sayfaya bir rapor gelecek şekilde sayfa yapısını ayarlarsanız sanıyorum sorunu çözebilirsiniz.

Yada her kişinin bilgileri için ayrı bir rapor sayfası oluşturun. İlk olarak tüm bilgiler bu sayfalara aktarın. En son olarakta oluşan sayfaları tek bir komutla yazdırın.

Dosyanızı paylaşım sitelerine ekleyip linkini burada verebilirsiniz.
 
Yapabileceğim birşey değil ama aklıma şöyle bir alternatif geldi.Sayfanızı bir butonla adı belli olan bir başka kitaba kaydedebilirsiniz.Bu şekilde yazdıracağınız tüm sayfaları kitaba aktardıktan sonra yazıcıdan çalışma kitabının çıktısını alabilirsiniz.
 
Evet aslında bu çözümlere benzer çözümler benim de aklıma gelmişti ama ekstra kodlarla ve ek dosyalarla uğraşmak istemedim. Bu çıktılar bazen 150-200 kişi için kullanılıyor (benzer mantıkla yaptığım başka program 1000-2000 kayıt içerebilir-kalıcı çözüm arıyorum), oluşturulan sayfalar çoğaldıkça excel'in yavaşlayacağını düşündüm o yüzden bu yolu son ihtimal olarak düşünüyorum.
Dosyanın linki
http://www.easy-share.com/1909813186/SFT2+ diğer.xls
kopyala yapıştır ile çalışacaktır.

İlginiz için teşekkür ediyorum
 
sn. peleryn
"yazıcınız çevrimdışıyken yapsanız ya da yazıcınızı duraklatıp yapsanız sonra da toplu yazdırsanız"
sorun şu ki Pc ile yazıcı arasındaki komut-veri akışında bir değişiklik olmadıkça çalışmasında da bir değişiklik olmayacaktır. Print yaparken yazıcı ikonuna tıklayıp bakarsanız örneğin 1-5 arası sayfa gönderdiyseniz o iş printerda tek satırda tek iş olarak görünür. Oysa benim sorunumda yazıcıya 5 kişinin raporunu gönderdiğimde yazıcının belleğinde 5 ayrı iş olarak görünür ve 5 satırda görünür. Yazıcı ilk işi çıkarır, duraksar ve sonraki işe geçer.
Yani bendeki
iş başlangıcı - 1 sayfa çıkar (1nci kişi) - iş bitişi / iş başlangıcı - 1 sayfa çıkar (2nci kişi) - iş bitişi .........
yerine
iş başlangıcı - biriktirilen 5 sayfa çıkar - iş bitişi
olmasını istiyorum ve bir yolunun olması gerektiğini düşünüyorum.
Excelde esnek print seçenekleri olduğuna göre ( 1-5; 1,3,7,10 gibi) bunların iç komutları da vardır ?.....
 
sn. Korhan Ayhan
Alt alta sayfalama yöntemi, çıkacak rapor sayısının fazlalığı nedeniyle pratik olmayacağını düşüyorum (100-2000 kişi).
Teşekkürler...
 
Selamlar,

Verdiğiniz link çalışmıyor. Kontrol edermisiniz.
 
verdiğim dosyada denemeler yapacaksanız
yaş aralığı 25-70 erkek, 25-50 kadın
boy aralığı er-1,55-1,-90 cm, 1,45-1,80 kadın
 
Selamlar,

Mahkeme kararınca kapatılmıştır uyarısı çıkıyor. Farklı bir paylaşım sitesine yüklermisiniz.
 
liste sayfasında hepsini çıkar butonunu deneyin. konu o butonun işlevi ile ilgili
 
Selamlar,

Bana göre istediğiniz işlemi yapmak için her kişi için SFT RAPORU isimli sayfadan bir kopya oluşturun. Verilerinizi bu sayfalara yazdırın. En son olarakta bu eklediğiniz sayfaları tek bir komutla yazdırın.
 
Selamlar,

Bana göre istediğiniz işlemi yapmak için her kişi için SFT RAPORU isimli sayfadan bir kopya oluşturun. Verilerinizi bu sayfalara yazdırın. En son olarakta bu eklediğiniz sayfaları tek bir komutla yazdırın.

Evet aslında bu çözümlere benzer çözümler benim de aklıma gelmişti ama ekstra kodlarla ve ek dosyalarla uğraşmak istemedim. Bu çıktılar bazen 150-200 kişi için kullanılıyor (benzer mantıkla yaptığım başka program 1000-2000 kayıt içerebilir-kalıcı çözüm arıyorum), oluşturulan sayfalar çoğaldıkça excel'in yavaşlayacağını düşündüm o yüzden bu yolu son ihtimal olarak düşünüyorum.
Dosya bu haliyle 4 mb iken 2000 kişi kaydedildiği zaman ve 2000 sayfa oluşturulduğu zaman ne olabileceğini tahmin ediyorum.

Yine de teşekkürler
 
Geri
Üst