Nasıl Print Alabilirim...

Katılım
24 Ağustos 2006
Mesajlar
8
Excel Vers. ve Dili
Office 2003
Türkçe
Değerli Arkadaşlar,

Ekteki dosya'da göreceğiniz gibi AnaSayfa'daki tabloya sicil numarası girerek Bilgiler Sheet'inden veri çekiyorum. Yapmak istediğim ise;

Ekteki örnek tablosunun asıl versiyonunda 300'den fazla sicil numarası var ve tek tek print almam gerekiyor, Bunları sicil numarası girmeden sırasıyla nasıl printer'a gönderebilirim..

Yardımlarınız için şimdiden teşekkür ederim..
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Bilgiler sayfanızdaki tüm verileri yazdırmak istiyorsanız
Kod:
Sub yazdir()
    Worksheets("Bilgiler").PrintOut Copies:=1, Collate:=True
End Sub
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Eğer hesap yaptırıktan sonra Liste halinde yazdırmak istiyorsanız Başka bir sayfada hesap yaptırıp çıktı almalısınız.

Tabi sayfa yapılarını önceden ayarlamalısınız.
İşte kodlarınız
Kod:
Sub hesapla()
Dim i As Integer
Dim sayi As Integer
Set s1 = Worksheets("AnaSayfa")
Set s2 = Worksheets("Bilgiler")
Set S3 = Worksheets("hesap")
sira = WorksheetFunction.CountA(s2.Range("B2:B65500"))

S3.Range("A2:N65500").ClearContents

sayı = 1
For i = 1 To sira
S3.Cells(sayı + 1, 1) = s2.Cells(sayı + 1, 1) ' Sıra No
S3.Cells(sayı + 1, 2) = s2.Cells(sayı + 1, 2) 'Adı Soyadı
S3.Cells(sayı + 1, 3) = s2.Cells(sayı + 1, 3) 'Saat Ücreti
S3.Cells(sayı + 1, 4) = s2.Cells(sayı + 1, 4) '1.Gün
S3.Cells(sayı + 1, 5) = s2.Cells(sayı + 1, 5) '2.Gün
S3.Cells(sayı + 1, 6) = s2.Cells(sayı + 1, 6) '3.Gün
S3.Cells(sayı + 1, 7) = s2.Cells(sayı + 1, 7) '4.Gün
S3.Cells(sayı + 1, 8) = s2.Cells(sayı + 1, 8) '5.Gün
S3.Cells(sayı + 1, 9) = s2.Cells(sayı + 1, 9) '6.Gün
S3.Cells(sayı + 1, 10) = s2.Cells(sayı + 1, 10) '7.Gün
S3.Cells(sayı + 1, 11) = "=SUM(RC[-7]:RC[-1])" 'Toplam Saat
S3.Cells(sayı + 1, 12) = "=RC[-1]*RC[-9]" 'Ödeme
sayı = sayı + 1
Next i
Worksheets("hesap").PrintOut Copies:=1, Collate:=True

End Sub
Dosyanız ekte
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Aşağıdaki örnek kodu deneyiniz.

Sub Düğme1_Tıklat()
For a = 1 To 5
[C4] = [C4] + 1
Sheets(1).PrintOut (a)
Next
End Sub
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Seyit Tiken, affınıza sığınarak;
kodlarda küçük bir değişiklik yaptım. Çünkü 3 verideki sayfayı yazdıramadım.
Yine sizden daha önceden aldığım bir bilgi bu.
Kod:
Sub Düğme1_Tıklat()
sira = WorksheetFunction.CountA(Worksheets("Bilgiler").Range("A2:A65500")) - 1
a = 1
[c4] = a
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
For a = 1 To sira
[c4] = [c4] + 1
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next
End Sub
 
Katılım
24 Ağustos 2006
Mesajlar
8
Excel Vers. ve Dili
Office 2003
Türkçe
Arkadaşlar,

Verdiğiniz cevaplar için gerçekten çok teşekkür ederim.
Aslında tam yapmak istediğim bu değil ama yinede elinize sağlık..

Tam yapmak istediğim şeyi, nasıl manuel yaptığımı anlatırsam belki daha iyi fikir sahibi olursunuz..

Sırasıyla, Anasayfa'da Sicil no girip aşağıda bilgileri derlenen kişinin Bordrosunu print'e gönderiyorum ve sonra 2. kişinin ve 3. ve 4. Yani söylemek istediğim her kişinin Bordrosunu ayrı ayrı basıyorum.. (bunlar kişilerin kendilerine verilecek. haliyle 300'ün üzerinde çalışanımız olduğu için bu bir hayli güç oluyor.)

Umarım yapmak istediğimi anlatabilmişimdir.
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
sayın kozbenim,
ekli dosyayı inceledinizmi (Örnek2)
Söylediklerinizden dosyayı incelemediğiniz anlaşılıyor.

Sayın Seyit Tiken'inde verdigi kod benimde hem kod hem örnek tam da sizin söylediğinizi yapıyor.

Siz Bilgiler sayfasına değil 300 1300 kişi girseniz 1300 defa gerekli hesaplamayı yapıp yazıcıya gönderir.
Yapmanız gereken Ekli Dosyayı indirip. Bilgiler kısmına sizdeki bilgileri aynı yerlere birebir kopyalayıp
Ana sayfadan butona basmak.
Kolay gelsin
 
Üst