Kodların daha hızlı çalıştırılması ve sadeleştirilmesi

Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Değerli Arkadaşlar
Eklediğim dosyada, sayfa 1, E25 hücresindeki değere göre boş sayfalar oluşturan ve her sayfaya bir sayfa numarası ve kod veren ve kapak sayfası ile birlikte diğer sayfaları yazdırdıktan sonra bir daha ki defter için bütün ayarları sıfırlayan bir makro var.
Ancak 1000 sayfalık bir defter yazdırdığımda makronun çalıştırılması zaman alıyor.
Arkadaşlar sizden ricam bu kodların mümkün olduğunca kısaltılıp sadeleştirilmesi ve hızlandırılması için ne gerekiyorsa yapılması.
Veya bu işlem için alternatif bir çözümü olan varsa onu da rica ederim.
Üstatlarımızdan özellikle rica ediyorum.
Yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Arkadaşlar çokmu zor bir şey sordum.
Düzeltme yapmak zorsa sıfırdan bir kod verecek arkadaş yokmudur.
İlgilenecek arkadaşlara şimdiden teşekkürler
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
E25 hücresindeki rakama göre üretilecek sayfalar için hangi şablon kullanılacak dosyada belirtmemişsiniz. Ordaki rakama göre sayfa eklemek için

Kod:
sub syfa_ekle()

s = [e25].Value

For i = 1 To s

    Sheets.Add After:=Sheets(Sheets.Count)

Next i

End Sub
Bu adımdan sonra yapmak istediğiniz nedir ?
 
Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Sayın Mesuttasar
Uzun bir aradan sonra artık umudumu kestikten sonra cevap verdiğiniz için teşekkür ederim.
Beni yanlış anlamışsınız. Sizin verdiğiniz kodlarda kitap içinde sheet ler oluşturulmaktadır.
Benim istediğim bir sheet içerisinde kapak sayfasından aşağıdaki satırlardan itibaren bildiğimiz sayfalar oluşturulması. Sheet ler şeklinde değil.
Şablon sayfa, (Sheet1 57. satır dahil ön izlemede görülebilen sayfadır.) ilk sayfa olarak dosyanın birinci sayfasında hazırdır. Ardından gelen sayfalar E25 hücresindeki sayı değeri kadar (E 25 hücresinin sayı değeri mesala 10.000 olabilir) makro tarafından sheet1 58. satırdan itibaren aşağıya doğru 65536. satıra kadar lazım olacak kadar biçimlendirilerek üretiliyor. Hatta son sayfaya bir onay ibaresi isim ve tarih şerhi eklenerek yazıcıya gönderiliyor.
Yazıcıya gönderildikten sonra birinci sayfa şablonu aynı kalmak şartıyla, devamında kodlar tarafından biçimlendirilerek oluşturan sayfa biçimleri sıfırlanıp yeni bir defter için hazır bekler hale geliyor.
Yazdırılacak defter şöyle bir şey. Bir defter düşünün kapak sayfasında defterin ait olduğu kişi ile ilgili bilgiler ve defterin kaç sayfadan ibaret olduğu bilgisi (E25 hücre değeri) yer alıyor. Devam eden sayfalarda her sayfa için aynı olan özel bir numara ve her sayfanın kendine ait sayfa numarası yer alcak. Son sayfada bu defterin kaç sayfadan ibaret olduğuna dair bir şerh ve tarih bulunacak.
Eklediğim dosyada makro sayfaları biçimlerip, ve oluşturup yazıcıya gönderiyor. Kodları inceleyecek olursanız göreceksiniz. Biraz uzun bir izah oldu. Yardımlarınızı bekliyorum.
 
Son düzenleme:
Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Sayın Mesuttasar
Bu mesajıma sayfaların üretilmiş halini gösteren excel dosyasını ekliyorum.
Kodların yazıcıya gönderme kısmını (ActiveSheet.PrintOut) ve sayfa biçimlendirmelerini sıfırlama kısmını iptal ettim. E 25 hücre değerini artırarak makroyu çalıştırıp dosyayı yazdırmadan ön izlemeden görebilirsiniz.
İlgilenecek tüm arkadaşlara şimdiden teşekkür ederim.
Alternatif çözümlerede her zaman açığım.
 

Ekli dosyalar

Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Kodları biraz inceledim, her sayfayı hazırlayıp, müteakiben yazıcıya göndermek, ve bunu teker teker göndermek bana kalırsa işlemi uzatan. Bence yapılması gereken, şablonu aynı sayfa içinde kopyalayıp yapıştırmak suretiyle veya direk atama yapmak suretiyle sayfaları aynı sayfada çoğaltıp, sayfa sonlarını uygun şekilde ayarlayıp en son kitap olarak yazıcıya göndermek.
 
Katılım
27 Temmuz 2004
Mesajlar
719
Excel Vers. ve Dili
Excel 2003 Tr
Sayın Mesuttasar
Bu mesajıma sayfaların üretilmiş halini gösteren excel dosyasını ekliyorum.
Kodların yazıcıya gönderme kısmını (ActiveSheet.PrintOut) ve sayfa biçimlendirmelerini sıfırlama kısmını iptal ettim. E 25 hücre değerini artırarak makroyu çalıştırıp dosyayı yazdırmadan ön izlemeden görebilirsiniz.
İlgilenecek tüm arkadaşlara şimdiden teşekkür ederim.
Alternatif çözümlerede her zaman açığım.
Ben herhalde yanlış makroya bakıyorum, düzenlenecek olan makro hangisi ve diğerleri ne işe yarıyor.
 
Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Sayın Janveljan
Teker teker göndermek yok bir defter bir seferde kodla hazırlanıyor. öylece yazıcıya gönderiliyor.
6. mesajımdaki kodları inceleyiniz önceki eklenmiş dosyadaki gereksiz modülleri son ekledğim dosyada sildim.
Bir kişi için bir deftere bilgiler girilecek ve makro çalıştırılıp yazıcıya gönderilecek.
Daha sonra başka bir kişi için bilgiler girilecek (mesala 50 sayfalık bir defter) yazıcıya gönderilecek.
Bu şekilde defterler yazdırılacak.
Modül 1 yazdır komutundan alt tarafı iptal ettiğim o kodlar çalışmaya açıldığında hazırlanan defter formatı sıfırlanıyor. Çalışan makra sadece "yazdır3" makrosu dur.

"yazdır" ve "yazdır2" makroları değişik kod verisiyonlarıdır. Dikkate almayınız. Fazlalık olarak kalmış.
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Sayın Cebelitarık,

Ekteki dosyada E58 den itibaren F9 ve G9 daki değerleri üretilecek sayfa adedi kadar yazdıran dosyayı ekledim.Ayrıca her sayfa içi ön izleme yapıp yazdırıp yazdırmayacağınızı soruyor. 1000 sayfa üretilecekse tabiki son kısımda yer alan önizleme kodlarını , doğrudan yazdıracak şekilde revize edebiliriz.Ben fikir vermesi açısından bu haliyle gönderiyorum.İnceleyin Aklınıza takılan bir kısım olursa da tekrar bakalım.

Kolay gelsin.

Not: Kodları mümkün olduğunca basite indirgedim ( daha karmaşığını bende bilmiyorum :) )

Bu arada satır yüksekliğini 409 falan gbi ayarlamanıza gerek yok sadece ben autofit yaptım yazdırma alanı belirlerken satır bazında çalıştığım için ona gerek kalmadı.Böylece dosya daha derli toplu gözükecektir.
 

Ekli dosyalar

Son düzenleme:
Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Sayın Mesuttasar
Kodlar için teşekkür ederim.
Kodları incelediğimde her sayfa tek tek döngü aracılığı ileüretilip yazıcıya gönderilecek herhalde
Bu sistem yazıcı hafızasını yormayacakmıdır.
Autofit özelliği tam olarak ne yapıyor.
Ayrıca sayfa sayısını textbox ile değilde E25 hücresine bağlayalım.
Kodları doğrudan yazıcıya gönderecek şekilde revize edebilirmisiniz.
Ayrıca son arka kapak kısmı nasıl üretilecek?
 
Katılım
21 Ağustos 2005
Mesajlar
625
Excel Vers. ve Dili
Office 365 - İngilizce
Sayın Cebelitarık;
1. AutoFit özelliği satırın yüksekliğini , punto değerine göre ayarlamak için kullanılıyor.Yani sizin ilk dosyanızdaki No yazan hücrenin yüksekliği 409,5 idi.Buna gerek yok diye otomatik hücre satır yüksekliği belirttim.

2. Ekteki dosyada textbox ı iptal edip , sayfa üzerindeki YAZDIR butonunun tetiklediği yazdir3 makrosu kodlarına taşıdım.

3. Kodları doğrudan yazıcıya gönderecek şekilde revize ettim.

4. Yazıcıya gönderilecek ilk sayfa , yukarıdaki bilgilerin olduğu tablo kısmı olarak ayarladım.

5. Yazdır Butonuna yazdığım kodların baş kısmını incelerseniz , 35 ve 17.000 inci satırları önce silip sonra sayfa numaralarını üretildiğini görebilirsiniz. 17.000 yerine mesela en fazla 10.000 sayfa üretilecekse 10.000 olarak değiştirebilirsiniz.

(Bu arada bir seferde yazıcıya bu kadar fazla sayıda sayfa verisi göndermek , yazıcının sanal belleğini doldurmaz mı sizce ??? )

6. Son arka kapak kısmıda üretildi ve alt hücreye yazdırıldı.
 

Ekli dosyalar

Katılım
12 Kasım 2007
Mesajlar
327
Excel Vers. ve Dili
excel 2003
Sayın Mesuttasar
Çok teşekkür ederim.
Kodları biraz inceledim evde yazıcı yok deneyemedim yarın işyerinde yazdıracağım.
print satırını deaktif yaptım kodu çalıştırdım.
aşağıdaki hatayı verdi.
"object doesnt support this property or method"
".TintAndShade = 0"
Bu hata nedir.
 
Üst