AccessTr.neT

Tam Versiyon: Aynı Sütundaki Verileri Yazdir Sayfasında A4 Sayfasına Yazdırma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5
Aynı sütundaki verileri yazdir sayfasında A4 sayfasına önce yan yana ve aşağıya doğru macro ile yazdırabilir miyiz?
bütün veriler yazdır sayfasında mı olacak?
Evet sayın Berduş bey bütün verileri yazdırma sayfasına aktaracak. Sistemden alınan Listeden (1 Sütundan) Sayfalar oluşturabilmiş olacağız.
aşağıdaki kodu dener misiniz?
Sub CokluStn()
Dim Kynk As Worksheet
Dim Hdf As Worksheet

Dim SonStr As Long, Str As Long
Dim Carp As Integer
Dim StnSay As integer, Stn As Byte
Dim StrSay As Byte
   
    StnSay = 7 'sütun Sayısı
    StrSay = 50 'satır sayısı
    Carp = 350

Set Kynk = ThisWorkbook.Worksheets("Veri")
    SonStr = Kynk.Cells(Kynk.Rows.Count, "B").End(xlUp).Row

Set Hdf = ThisWorkbook.Worksheets("Yazdir")

Str = 2
Stn = 2
For x = 2 To SonStr

    Hdf.Cells(Str, Stn) = Kynk.Range("B" & x)
'    If ((x - 1) Mod 50) = 0 Then Stn = ((Stn - 1) Mod 7) + 2
'    Str = ((x - 1) \ 350) * 50 + ((x - 1) Mod 50) + 2
   
    If ((x - 1) Mod StrSay) = 0 Then Stn = ((Stn - 1) Mod StnSay) + 2
    Str = ((x - 1) \ Carp) * StrSay + ((x - 1) Mod StrSay) + 2
Next x

End Sub
Sub CokluStn()
Dim Kynk As Worksheet
Dim Hdf As Worksheet

Dim SonStr As Long, Str As Long
Dim Carp As Integer
Dim StnSay As Integer, Stn As Byte
Dim StrSay As Byte

StnSay = 7 'sütun Sayısı
StrSay = 50 'satır sayısı
Carp = StnSay * StrSay

Set Kynk = ThisWorkbook.Worksheets("Veri")
SonStr = Kynk.Cells(Kynk.Rows.Count, "B").End(xlUp).Row

Set Hdf = ThisWorkbook.Worksheets("Yazdir")
Application.ScreenUpdating = False
Str = 2
Stn = 2
For x = 2 To SonStr

Hdf.Cells(Str, Stn) = Kynk.Range("B" & x)
' If ((x - 1) Mod 50) = 0 Then Stn = ((Stn - 1) Mod 7) + 2
' Str = ((x - 1) \ 350) * 50 + ((x - 1) Mod 50) + 2

If ((x - 1) Mod StrSay) = 0 Then Stn = ((Stn - 1) Mod StnSay) + 2
Str = ((x - 1) \ Carp) * StrSay + ((x - 1) Mod StrSay) + 2
Next x
Application.ScreenUpdating = True
MsgBox ""
End Sub

2 kod aynı aslıda birinde screenupdate =false kullandım ekran güncellemesini durdurmak için o kadar
Not: aslında
StnSay = 7 'sütun Sayısı
StrSay = 50 'satır sayısı
Carp = StnSay * StrSay
kısımlarına gerek yoktu ilerde siz satır yada sütun sayısını değiştirmek istersiniz diye eklendi yoksa doğrudan
    If ((x - 1) Mod 50) = 0 Then Stn = ((Stn - 1) Mod 7) + 2
Str = ((x - 1) \ 350) * 50 + ((x - 1) Mod 50) + 2
şeklinde de kullanılabilirdi
Sayın berduş bey birinci kod çalışmadı hata verdi. 2. kod çalıştı. Acaba yazdırılacak sayfa sayısını manuel olarak bakmak baya bir zaman alıyor. Acaba yazdırılacak dolu kaç sayfa olduğunu nasıl anlarız. Önizlemeye alıp 150. sayfa olmadı 161.sayfa gibi bakıyorum.
Sayfalar: 1 2 3 4 5