Aynı Satıları 4 defa Yazdırma

Katılım
16 Ocak 2010
Mesajlar
81
Excel Vers. ve Dili
Excel 2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-01-2024
Merhabalar,
Excel basit bir şeye ihtiyacım var ama bir türlü yapamadım.


Yüzlerce satır için uygulamam gerekli basit bir örnek ile yaptım.

Tablom da Malzeme ismi, tarih ve tutar var
Sol taraftaki satırların hepsi için, bütün satırları 4 defa yazdırıp tutarı 4 bölüp, tarihleri de 7 şer gün artırmak istiyorum.

Yardımlarınız ve yönlendirmeleriniz için şimdiden teşekkür ederim.


sss.jpg
 

Ekli dosyalar

Katılım
8 Ekim 2009
Mesajlar
642
Excel Vers. ve Dili
Office 2010 & 2016 TR
Altın Üyelik Bitiş Tarihi
26-12-2023
Merhaba,
Ömer Bey"in bir cevabından yola çıkarak hazırladığım dosyanız ekte.
Deneyiniz.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif olarak kod:

Kod:
Sub deneme1()
Set s1 = Sheets("Sayfa1")
s1.Range("G3:K" & Rows.Count).ClearContents
sat = 3
For r = 3 To s1.Cells(Rows.Count, "A").End(3).Row
bol = s1.Cells(r, 5)
tarih = s1.Cells(r, 4)
For k = 1 To 4
s1.Cells(sat, 7) = s1.Cells(r, 1)
s1.Cells(sat, 8) = s1.Cells(r, 2)
s1.Cells(sat, 9) = s1.Cells(r, 3)
s1.Cells(sat, 10) = tarih
s1.Cells(sat, 11) = bol / 4
sat = sat + 1
tarih = CDate(tarih) + 7
Next k
Next r
MsgBox " Düzenleme Tamanlanmıştır..."
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,314
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

Bu kod da blok olarak aktarım yapıyor.

Kod:
Sub Aktar()
    Range("H3:L" & Rows.Count).Clear
    Satir = 3
    Son = Cells(Rows.Count, 1).End(3).Row
    For X = 3 To Son
        If Cells(X, 1) <> "" Then
            Cells(Satir, "H").Resize(4, 3).Value = Cells(X, 1).Resize(1, 3).Value
            Cells(Satir, "K").Resize(4, 1).Value = "=" & Cells(X, 4).Address & "+LOOKUP(ROW(K1),{1,2,3,4},{0,6,13,20})"
            Cells(Satir, "K").Resize(4, 1).Value = Cells(Satir, "K").Resize(4, 1).Value
            Cells(Satir, "L").Resize(4, 1).Value = Cells(X, 5) / 4
            Satir = Satir + 4
        End If
    Next
    Range("H3:L" & Satir - 1).Borders.LineStyle = 1
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Üst