Hazırlanan şablonu istenilen aralığa uyacak şekilde yazdırma

Katılım
19 Kasım 2007
Mesajlar
31
Excel Vers. ve Dili
office 2003 türkçe
Hazırlanan şablonu istenilen aralığa uyacak şekilde yazdırma

Merhaba arkadaşlar ben bir şirkette personel sorumlusu olarak çalışıyorum. Excel'de maaş ile ilgili hazırladığım liste ve tablo isimli sayfalar var, liste sayfasındaki yatay olan verileri tablo sayfasında dikey olarak (liste başlıkları ile beraber) yazdırmak istiyorum ve bu tablo sayfasında oluşan dikey verileri (ücret pusulası gibi düşünün) A4 kağıdına 6 adet sığayacak şekilde yazdırmak istiyorum ve bunu 220 personel için yapmam lazım. Bu konuda bana acil olarak yardımcı olur musunuz?

Şimdiden teşekkür ederim.
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
ben bu soruya kendimce şöyle bir yanıt buldum. herseferinde 1 sayfanın cıktısını alabiliyorsunuz x işareti koydugunuz hücrenin karşısındaki 6 satırın. hepsinin aynı anda çıktısını aldırmak beni aşıyor:) neyse buyrun:
 
Katılım
19 Kasım 2007
Mesajlar
31
Excel Vers. ve Dili
office 2003 türkçe
Teşekkür ederim arkadaşım ama tam olarak işimi görmedi, çünkü personel sayısı 200 kişi. Bunların hepsini formülü doldur yöntemi ile çok kısa bir süre de yapmak istiyorum aynı zamanda liste başlıklarını da (sicil kodu, adı soyadı, gün vb. gibi) otomatik yaptırmak istiyorum.

Yine de teşekkür ederim, ilgi ve alakanız için.
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
formül doldur yöntemine uyarladım ama liste başlıklarını otamatik doldurmadan kastınız ne nerden alınacak veriler?
ben tablo sayfasını yaptım bi bakın
 
Katılım
19 Kasım 2007
Mesajlar
31
Excel Vers. ve Dili
office 2003 türkçe
Arkadaşım teşekkür ederim, demek istediğim aşağı yukarı oldu gibi, ancak 1-2 şey daha rica edebilirmiyim. Liste sayfasındaki başlıkları (adı soyadı, gün, maaşı, fazla mesai vb gibi) değiştirdiğim zaman tablo sayfasındaki başlıkları otomatik olarak değiştirmesi benim için daha iyi olacak, son birşey daha Tablo sayfasındaki sıralamayı yan yana değil de, aşağıya doğru dikey bir şekilde olursa daha iyi olacak.

Teşekkürler, kolay gelsin.
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
başlıklar tamam ama aşagı dogru yapamadım onun içinde hocalarımızdan biri yardım ederse olur:))
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
istediginiz bu galiba

dosyayı incelermisiniz
 
Son düzenleme:
Katılım
19 Kasım 2007
Mesajlar
31
Excel Vers. ve Dili
office 2003 türkçe
Fedeal arkadaşım, eline yüreğine sağlık tam istediğim gibi oldu, çok teşekkür ederim.

İyi çalışmalar, kolay gelsin.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,428
Excel Vers. ve Dili
Ofis 365 Türkçe
Sanırım Şablon kullanmak daha mantıklı.
Personel sayısından bağımsız olarak kullanabilirsiniz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,428
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Makrolu çözüm isterseniz eğer :

Şablon sayfasında 6 kişi vardır. Makro bu 6 kişiyi doldurduktan sonra yazıcıdan çıktısını alır.

Dolayısıyla kişi sayısına bağlı kalmaksızın rahatlıkla çalışabilirsiniz.

Tabii ki sütunda değişiklik yapmamak şartıyla :)

Liste sayfasında A1:O1 arasını dikkate alır, burada yapılacak değişiklikler Şablon sayfasına aktarılır.

Bir deneyiniz.

Kodda ss.PrintPreview gördüğünüz satırları açıklama olarak saklayıp (satırın başına tek tırnak koymak yeterli) ss.PrintOut olan satırın açıklamasını kaldırırsanaz, doğrudan yazıcıya (varsayılan yazıcı) döker.

Bu dosyayı inceleyecek arkadaşlar için ekrana döktürdüm.


Kod:
Option Base 1
Sub Listele()
Set sl = Sheets("Liste")
Set ss = Sheets("Şablon")
Dim d, i, Satır, Sat, Kol, Sütun As Integer
d = Array(1, 17, 33)
Application.ScreenUpdating = False
ss.[A1:E47].ClearContents
sl.Range("A1:O1").Copy
For i = 1 To 3          '---------- Başlıkları Aktarım Döngüsü
    Sat = d(i)
    ss.Cells(Sat, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    ss.Cells(Sat, 4).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Next i                  '---------- Başlıkların Aktarım Döngü Sonu
Sütun = 1
Satır = 1
Sat = 1
For i = 2 To sl.[B65536].End(3).Row     '------- Personel Bilgilerinin Aktarım Döngüsü
    
    If Sütun > 2 Then
        Sütun = 1
        Satır = Satır + 1
        If Satır > 3 Then
            Satır = 1
[B][COLOR=red]'            ss.PrintOut
[/COLOR][COLOR=orange]            ss.PrintPreview
[/COLOR][/B]            ss.[B1:B47, E1:E47].ClearContents
        End If
        Sat = d(Satır)
    End If
    
    If Sütun = 1 Then
        Kol = 2
    Else
        Kol = 5
    End If
    
    sl.Range("A" & i & ":O" & i).Copy
    ss.Cells(Sat, Kol).PasteSpecial Paste:=xlPasteValues, Transpose:=True
    
    Sütun = Sütun + 1
Next i                                  '------- Personel Bilgilerinin Aktarım Döngüsü Sonu

i = i - 1
i = i Mod 6
[B][COLOR=red]'If i <> 0 Then ss.PrintOut
[/COLOR][COLOR=orange]If i <> 0 Then ss.PrintPreview[/COLOR][/B]
MsgBox "Aktarım ve Yazdırma Bitmiştir........."
Application.CutCopyMode = False
End Sub
 

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
hocam cok güzel olmuş emegine saglık gerci konuyu ben açmamıştım ama benim için cok faydalı oldugu için tşekkürü borç bildim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,428
Excel Vers. ve Dili
Ofis 365 Türkçe
Bende sizin &#231;al&#305;&#351;man&#305;z&#305; kulland&#305;m Say&#305;n fedeal,

Bende size te&#351;ekk&#252;r ederim. Bir arkada&#351;&#305;m&#305;z&#305;n derdine &#231;are oldu&#287;unuz i&#231;in.
 
Üst