27/08/2021, 20:57
27/08/2021, 22:27
bütün veriler yazdır sayfasında mı olacak?
27/08/2021, 23:56
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.
28/08/2021, 00:02
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
28/08/2021, 00:09
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ılabilirdi28/08/2021, 00:14
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.