listview print alma

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Öncelikle forumdaki tüm arkadaşlarımın mübarek kurban bayramını kutlar, hakkınızda hayırlara vesile olmasını dilerim.

benim sorunum aslında gayet basit gözüksede henüz çözebilmiş değilim.

Listview'de süzdüğüm listeyi, süzdürülmüş haliyle istediğim printerde yazdırmak istiyorum.istediğim printeri seçtirebiliyorum ama ne yaptıysam listviewi süzdürdüğüm şekilde printerde yazdıramadım. önerilerinizi bekliyorum arkadaşlar....
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Listviewdeki bilgileri bir sayfaya aktarıp bu sayfayı yazdırın.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Listviewdeki bilgileri bir sayfaya aktarıp bu sayfayı yazdırın.
cevabınıza teşekkür ederim sayın leventm. listviewdeki listeyi başka sayfaya aldırıyorum ama süzdürdüğüm şekilde değilde listenin tamamını sayfaya atıyor. sadece süzdüğüm şekilde nasıl atabilirim?
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Sütun sayınız fazla ise aşağıdaki satırları artırmanız gerekir. Fazla karışık olmamamsı ve sizin de anlayabilmeniz için sütunlarda döngü kullanmadım. Umarım faydalı olur. İyi çalışmalar.

Kod:
set s1=sheets("Sayfa1")  'Sizin sayfanız olacak.
 
For s = 1 To ListView1.ListItems.Count
 
s1.Cells(s + 1, "a") = ListView1.ListItems(s)  'Başlık satırı vardır diye +1 satır ilave ettim.
s1.Cells(s + 1, "b") = ListView1.ListItems(s).SubItems(1)
s1.Cells(s + 1, "c") = ListView1.ListItems(s).SubItems(2)
s1.Cells(s + 1, "d") = ListView1.ListItems(s).SubItems(3)
 
Next
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Sütun sayınız fazla ise aşağıdaki satırları artırmanız gerekir. Fazla karışık olmamamsı ve sizin de anlayabilmeniz için sütunlarda döngü kullanmadım. Umarım faydalı olur. İyi çalışmalar.

Kod:
set s1=sheets("Sayfa1")  'Sizin sayfanız olacak.
 
For s = 1 To ListView1.ListItems.Count
 
s1.Cells(s + 1, "a") = ListView1.ListItems(s)  'Başlık satırı vardır diye +1 satır ilave ettim.
s1.Cells(s + 1, "b") = ListView1.ListItems(s).SubItems(1)
s1.Cells(s + 1, "c") = ListView1.ListItems(s).SubItems(2)
s1.Cells(s + 1, "d") = ListView1.ListItems(s).SubItems(3)
 
Next
merhaba

sayın meslekinin kodunu kullandım ancak yine istediğim olmadı. listviewde süzme yaptıktan sonra (bkz. ekli dosya) süzme yapılanları bir sayfaya atıp çıktısını almak istiyorum ancak yine tüm listeyi çıktı alıyor. üstüne üstlük şimdi userform kapanmıyor ve dosya kilitleniyor, sebebi ne olabilir acaba?
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Tüm listenin yazdırılıyor olmasının sebebi, kodlarla faal durumdaki sayfayı yazıcıya gönderiyor olmanız.

Kod:
ActiveSheet.PrintOut copies:=1, collate:=True
Bu kodları aşağıdaki gibi değiştirip deneyiniz.

Kod:
s1.PrintOut [COLOR=silver]copies:=1, collate:=True[/COLOR]

Formunuzun sürekli açık kalıyor olmasının sebebi ise, labelsaat nesnesindeki sürekli döngüdür. Kapatma düğmesine End komutu ekleyerek, işlemi bitirebilirsiniz.

Kod:
On Error Resume Next
Unload Me
[B]End[/B]
 
Son düzenleme:

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
sayın mesleki alakanıza çok çok teşekkür ederim. verdiğiniz kodlar çok güzel çalışıyor. canınızı sıkmak istemem ama son bir sorum olacak.sayfa yapısında sütun başlıklarını her sayfada görünecek şekilde ayarladığım halde, (verdiğiniz kodlarla çıktı aldığım zaman) bu başlıkları göremiyorum. verdiğiniz kodlardan yararlanarak önizleme almaya çalıştım, aktif sayfanın ön izlemesini alıyor. kullandığım kodları aşağıda verdim.alakanız için tekrar tekrar teşekkür ederim.

Sub Cmd2_Click() 'Ön izleme kodu
Unload Me
Unload UserForm1
Set s1 = Sheets("Listele") 'BU bölümden itibaren

For s = 1 To ListView1.ListItems.Count

s1.Cells(s + 1, "a") = ListView1.ListItems(s)
s1.Cells(s + 1, "b") = ListView1.ListItems(s).SubItems(1)
s1.Cells(s + 1, "c") = ListView1.ListItems(s).SubItems(2)
s1.Cells(s + 1, "d") = ListView1.ListItems(s).SubItems(3)

Next' buraya kadar sizin kodlarınızı kullandım.
s1.PageSetup.PrintArea = "$A$2:$j$" & Range("j65536").End(xlUp).Row' Bu kodla yazdırma alanını otomatik belirlemeye çalıştım
Application.Dialogs(xlDialogPrintPreview).Show
UserForm1.Show
End Sub

Sub Cmd1_Click() 'Yazdırma kodu bu kodda sayfa yapısında ayarladığım sütun başlıklarını yazdır dediğimde göremiyorum.
Set s1 = Sheets("Listele") 'Sizin sayfanız olacak.

For s = 1 To ListView1.ListItems.Count

s1.Cells(s + 1, "a") = ListView1.ListItems(s) 'Başlık satırı vardır diye +1 satır ilave ettim.
s1.Cells(s + 1, "b") = ListView1.ListItems(s).SubItems(1)
s1.Cells(s + 1, "c") = ListView1.ListItems(s).SubItems(2)
s1.Cells(s + 1, "d") = ListView1.ListItems(s).SubItems(3)

Next

Application.Dialogs(xlDialogPrinterSetup).Show
s1.PageSetup.PrintArea = "$A$2:$j$" & Range("j65536").End(xlUp).Row
s1.PrintOut copies:=1, collate:=True
End Sub
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Sütun başlıklarını Listele sayfasına da yazın ve o sayfadayken yinelenecek satırları ayarlayın; ancak sizin başlıkları tekrar ettirememe nedeniniz yazdırma alanı tanımlamanızdan kaynaklanıyor. Sütun başlıklarını yazdırılacak alana almamışsınız. A2 yerine A1'den başlatın, olmazsa yazdırma alanı belirtmeden deneyiniz.


Önizleme kodu olarak da aşağıdaki gibi deneyiniz.

Kod:
s1.PrintPreview
 
Son düzenleme:

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
sayın mesleki yardımlarınız için çok teşekkür ederim. emeğinize, alakanıza sağlık. herşey düzgün çalışıyor.
 
Üst