• DİKKAT

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

veri uzunluğuna göre sayfa baskısı

Katılım
25 Ağustos 2005
Mesajlar
569
Excel Vers. ve Dili
Excel 2003 Tr
sayın hocalarım, hazırladığım programda userform üzerinde istediğim veriyi listeleyip öndecen yazdırma alanı belirlediğim için makro aracılığıyla yazıcıya gönderebiliyorum fakat sorun şurda eğer veri bir sayfadan fazla ise yazdırma alanı bir sayfa olduğu için bir sayfayı basıyor diğer sayfayı yazdırmıyor. Varsayılan yazdırma alanı 10 sayfa diye tanımlasam bu sefer de bir veya iki sayfa dolu çıkıyor diğer sayfaların tamamı yazıcıdan boş çıkıyor. Bu sorunu makro ile çözmenin bir yolu varmıdır. Yani belli bir satır sayısı tanımlanıp o satır sayısı aştığında diğer sayfayı yazdırma şansı varmıdır. İlginize teşekkür ederim.
 
Tanımladığınız sayfada satır sayısını belirleyin..Ã?rneğin, 52 satır = bir sayfa olsun..En son print almadan önce satır sayısını saydırın..52 ve katlarına göre sayfa adedi belirleyin(sayfa adedi=satır sayısı/52 gibi..)..Ona göre yazıcıya sayfa adedi belirleyip çıktı alın..
 
Benimde benzer bir sorunum vardı..Yazdırmayacağım sayfalardaki satır yüksekliğini 0 yaparak çözüm buldum.. Böyle bir çözüm düşünürsen dosyanı ekle benzerini uygulayalım...
 
listenizi satır atlamadan mı yapıyorsunuz veya listenizin sonunu belirleyici bir bilgi varmı
 
listeyi satır atlamadan yapıyorum doğrudur listenin sonunu belirleyici bir bilgi de vermiyorum. Userform üzerindeki yazdır butonundan yazıcıya aktarıyorum ve kodu da ; örnek bir sayfa için şöyle;
Private Sub CommandButton4_Click()
Sheets("KASRAP").PrintOut
End Sub
 
dosyanı eklerlersen daha iyi olurdu.
Private Sub CommandButton4_Click()
satirsay = Range("A1").CurrentRegion.Rows.Count
ActiveSheet.PageSetup.PrintArea = "$A$1:$E$" & satirsay
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
 
hocam maalesef dosya ekleme şansım yok çünkü 12 mb lık bir dosya bu. ActiveSheet.PageSetup.PrintArea = "$A$1:$E$" & satirsay komutundaki $E$ son hücreyi temsil ediyor değilmi.
 
hocam üç sayfa veri vardı ama 116 sayfa yazdırdı. acaba nedeni ne olabilir
 
hocam hatayı buldum ve düzeldi. çok güzel çalışıyor. emeğinize teşekkür ederim.
 
sn.hocalarım, yukarıda sorduğum soruya sn.ömerceri den cevap aldım ve sağolsun makro sorunsuz çalışıyor fakat buraya bir ekleme yapmam gerekiyor şöyleki; eğer mümkün ise yazdırılacak sayfa bir tane ise sayfanın sonuna belirtilen sütunların toplamının alınması, eğer sayfa birden fazla ise sayfa sonlarına ara toplam en son sayfaya genel toplam alması, bu mümkün değil ise en sondaki sayfaya toplam alması. Yardımlarınızı esirgemediğiniz için teşekkürler. Þimdiden tüm excel.web.tr üyelerinin bayramlarını kutuluyorum.
 
sayfa başlıklarının olmadığını
sayfanın A sütunundan L sütununa kadar olduğunu
toplanacak sütunun A sütunu olduğunu
farzettim
bütün satırlarının yüksekliğinin aynı olması gerekiyor
aşağıdaki kodları diğer kodların üstüne eklersen

Sub Makro1()
say = Range("a1").CurrentRegion.Rows.Count
If say < 56 Then
Range("a" & say + 1).Value = "=Sum(a" & say & ":a1)"
Else
say1 = (say \ 56) + say
For i = 56 To say1 Step 56
Range("a" & i & ":L" & i).EntireRow.Insert
Range("a" & i).Value = "=Sum(a" & i - 1 & ":a" & i - 55 & ")"
Next
End If
Range("a" & say1 + 1).Value = "=Sum(a" & say1 & ":a" & say1 - ((say1 Mod 56) - 1) & ")"
Range("a" & say1 + 2).Value = "=Sum(a1:a" & say1 + 1 & ")"
Range("a" & say1 + 2).Value = Range("a" & say1 + 2) / 2
End Sub
 
sn.ömerceri çok teşekkür ederim kodlar güzel çalıştı elinize sağlık ve iyi bayramlar.
 
sn.ömerceri, verdiğiniz kodları programa uygulamadan önce çalıştırdım güzel çalışıyor ama kendi programıma adapte edemedim. bendeki rapor sayfası başlıklı bir sayfa a1 hücresinden k1 hücresine kadar başlıklar var. Başlıklar aşağıdaki gibi; S.No Tarih Firma Adı Malın Cinsi Miktar Birim Marka Açıklama Kod. B.Fiyatı Tutarı
benim toplattırmak istediğim hücreler ise Miktar yani (E2 hücresinden aşağıya dopru) ve Tutarı yani (K2 hücresinden aşağıya doğru) Yazdığınız makroyu be şekle göre uyarlamanız mümkünmü. İlginiz için teşekkür ederim.
 
sn.ömerceri,
daha önceki verdiğiniz kodlara göre sayfa uzunluğunu hesaplayıp baskı yapabiliyorum ek'te ki örnek rapor sayfasında. eğer bu örnekrapor size alt toplamları alma konusunda yardımcı olamazsa lütfen bildirirmisiniz. Yardımlarınız için teşekkür ederim. Saygılarımla.
 
sn.hocalarım bu konuya bir el atın lütfen epeydir uğraşıyorum ama yine de başaramadım ve delirmek üzereyim artık ne kadar değişiklik yaptıysam da e1 hücresine toplam alıyor.
:agla: :kafa:
 
Ekte bir örnek hazırladım inceleyin. I sütunundaki toplamı her sayfanın sonuna yazmaktadır. Dosyadaki kodu çalıştırmadan önce sayfa özinleme yaparak görünüşü inceleyin. Kodu çalıştırdıktan sonra tekrar incelerseniz farkı göreceksiniz. Kod hers sayfanın sonunu kendiliğinden algılamaktadır. Sayfa ayarlarını değiştirseniz bile yeni ayarlar dikkate alınacaktır.

Kod:
Sub alttoplam()
Application.ScreenUpdating = False
ActiveWindow.View = 2
say = ActiveSheet.HPageBreaks.Count
ilk = 2
c = -1
sontoplam = WorksheetFunction.Sum([i2:i65536])
For a = 1 To say
sat = ActiveSheet.HPageBreaks.Item(a).Location.Row - 1
Rows(sat).Insert
adr = "i" & ilk & ":i" & sat + c
c = 0
ilk = sat
toplam = WorksheetFunction.Sum(Range(adr))
Cells(sat, "h") = "TOPLAM:"
Cells(sat, "i") = toplam
Next
sonsat = [h65536].End(3).Row + 1
Cells(sonsat, "h") = "TOPLAM:"
Cells(sonsat, "i") = sontoplam
ActiveWindow.View = 1
End Sub
 
Bilgi ve bilgiyi paylaşmak ne kadar güzel. teşekkürlerler leventm hocam. Size ve diğer emeği geçen arkadaşlara çok teşekkür ederim. istediğimden çok daha güzel olmuş.
 
Geri
Üst