• DİKKAT

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

Tabloda sadece dolu olan son satıra kadar yazdırma

Katılım
15 Ocak 2011
Mesajlar
42
Excel Vers. ve Dili
2007 / TR
Merhaba,

Oluşturduğum tabloların yanına birer yazdır butonu eklemek istiyorum.

Tablolarda doldurulmamış yüzlerce satır var. Bu yüzden butona basıldığında tablonun sadece son dolu olan satırına kadar olan kısmını yazdırması gerekli.

Bunu sağlayabilir miyim ?
 
Selamlar,

Forumda PrintArea olarak arama yapınız.
 
Sn Ayhan,

İlginize teşekkürler. Forumda araştırma yaptım fakat sonuca ulaşamadım. Bu konuda daha önce de yardım isteyenler olmuşsa da sonuç alamamışlar.

Tabloları yazdırmak için her tablonun yanında bir buton var. Tabloların her bir satırında formüller var. Fakat her satır veri çekmiyor. Çoğu tamamen boş. Ben butona bastığımda tablonun sadece veri aktarılmış olan, yani dolu olduğunu gördüğümüz, son satıra kadar olan kısmının yazdırılmasını sağlamaya çalışıyorum.

Yardımcı olabilirseniz çok sevinirim.
 
Merhaba,

Aşağıdaki kodları inceleyin.

Kod:
Sub yazdır()
son = Sheets("[COLOR="Red"]sayfaismi[/COLOR]").Cells(Rows.Count, "[COLOR="Red"]son verinin aranacağı sütun[/COLOR]").End(xlUp).Row
Sheets("[COLOR="Red"]sayfaismi[/COLOR]").Range("[COLOR="Red"]başlangıç hücresi[/COLOR]:[COLOR="Red"]son verinin aranacağı sütun[/COLOR]" & son).PrintOut Copies:=1, preview:=True
End Sub
 
Sn Çoban,

Denedim ama beceremedim. Ekte hazırladığım bir örnek dosya var.

Yazdığınız kodu bu örnek üzerinde işler hale getirir misiniz lütfen.
 

Ekli dosyalar

Selamlar,

Aşağıdaki kodu denermisiniz. Kod B sütunundaki maksimum sayıya göre yazdırma alanı belirler. Eğer bu çözüm işinize yaramazsa farklı çözümlerde üretebiliriz.

Kod:
Option Explicit
 
Sub DOLU_SATIRLARI_YAZDIR()
    Dim SON_SATIR As Long
    With Sheets("Sayfa1")
        SON_SATIR = WorksheetFunction.Max(.Range("B4:B65536")) + 3
        If SON_SATIR = 3 Then
            MsgBox "Yazdırılacak veri bulunamadı !" & Chr(10) & "İşleminiz iptal edilmiştir !", vbCritical
            Exit Sub
        End If
        With .PageSetup
            .PrintArea = "$B$3:$L$" & SON_SATIR
            .LeftMargin = Application.InchesToPoints(0.393700787401575)
            .RightMargin = Application.InchesToPoints(0.393700787401575)
            .TopMargin = Application.InchesToPoints(0.393700787401575)
            .BottomMargin = Application.InchesToPoints(0.393700787401575)
            .HeaderMargin = Application.InchesToPoints(0)
            .FooterMargin = Application.InchesToPoints(0)
            .Zoom = 80
        End With
        .PrintOut
    End With
End Sub
 
Sn Ayhan,

Öncelikle çok teşekkürler,

Kodu inceledim ve sayfanın kod bölümüne kaydettim. Play tuşuna bastığımda tablodaki girilmiş son veriye kadar olan kısmı yazdırma alanı olarak işaretliyor. Tam istediğimiz gibi. Fakat ben bu makroyu düğmeye basılınca devreye girecek şekilde ayarlayamadım. Bunu nasıl yapabilirim?

Ek bir rica daha;

Düğmeye basıldığında direk çıktı almasını istiyorum. Sanırım şu anki makro bizi, yazdır ön izleme sayfasına yönlendiriyor ve gerisini kullanıcıya bırakıyor. İstediğimiz direk çıktının alınması ve normal çalışma sayfasına dönülmesi. Ön izleme olmaksızın işin bitmesi. Bunun için de bir çözüm önerebilirseniz çok sevinirim.
 
Selamlar,

İlk olarak aşağıdaki linki inceleyerek modül ekleme olayını öğrenin.

MODÜL EKLEME

Dosyanıza boş bir modül ekledikten sonra önceki mesajımda önerdiğim kodu boş modüle uygulayın.

Daha sonra excel sayfanıza dönün. Sayfa üzerinde bulunan kendi oluşturduğunuz nesne üzerinde sağ klik yapın. Açılan menüden MAKRO ATA seçeneğini seçin. Karşınıza gelen pencereden makro adını tıklayıp TAMAM tuşuna basın.

Artık butona tıkladığınızda sayfanız yazdırılacaktır.
 
Geri
Üst