• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

sayfa 1'den al Sayfa2'ye at (her 50 satırda bir topla)

Katılım
23 Ekim 2010
Mesajlar
11
Excel Vers. ve Dili
2007 TR
arkadaşlar merhabalar.
ekte bir dosya var. birinci sayfada banka hesabımıza yapılan ödemeler var. ben birinci sayfadaki verileri ikinci sayfayada göstereceğim. ama ikinci sayfadaki veriler farklı formatta olacak.
her 50 satırın kendi içinde toplamını alacak 51. satıra yazacak. ve sonra 52. satıra ise genel toplamı yazacak, yani nakil edilen tutar. bu nakil tutarı (sayfa toplamı + bir önceki sayfadan nakil edilen) şeklinde hesaplıyorum.
zaten örnke dosyada bakınca anlarsınız.
bu işlemi nasıl yaparım.
yani birinci sayfadaki veriler ikinci sayfada benim istediğim şekilde görünecek.
ama önemli olan şu. daha sonra 1. sayfadan bir veri silince 2. sayfa yeniden kendini restore edecek. yani aradan bi satır silinse bili ikinci sayfa 50'şerli olarak toplamayı yeniden yapacak. yani 49'a düşmeyecek. veya sonradan araya veri eklenince diğer sayfada da araya eklenecek ama sayfadaki satır sayısı 51 olmayacak gene 50 olacak.
yardımcı olursanız sevinirim.
 

Ekli dosyalar

Merhaba,

Module kopyalarak çalıştırınız..

Kod:
Sub AyrıTopla()
Set Sv = Sheets("Veriler")
Application.ScreenUpdating = False
Sheets("Defter").Select
Range("A2:D65536").ClearContents
sonv = Sv.Cells(Rows.Count, "A").End(xlUp).Row
    Sv.Range("A1:D" & sonv).Copy Range("A2")
 
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Cells(i, "A") Mod 50 = 0 Then
        Rows(i + 1 & ":" & i + 2).Insert Shift:=xlDown
        Range("C" & i + 1) = "Sayfa Toplam"
        Range("C" & i + 2) = "Nakil"
        Range("D" & i + 1) = "=Sum(D" & i - 49 & ":D" & i & ")"
        Range("D" & i + 2) = "=Sumif(C1:C" & i + 1 & "," & "C" & i + 1 _
        & "," & "D1:D" & i + 1 & ")"
    End If
Next i
Application.ScreenUpdating = True
End Sub
.
 
Arkadaşım çok teşekkürler. tam istediğim kod. acaba bu kopyalama işini istediğim satırdan başlatmam mümkün mü.
yani örneğin diyelim ki defter sayfasında ilk 5 satıra başlık falan ayarlayacam. o yüzden bu verileri yapıştırırken 6. satırdan itibaren yapıştırmasını nasıl sağlarım. bana baslangicsatiri diye bir değişken ayarlayabilirmisin onun için. fazla masraflı olmuyorumdur umarım :)
birde bu kodlar c# yazınca olmuyormu. vb yazmak zorundamıyız. o konuda bir gelişme veya çalışma veya yama varmı acaba.
 
Son düzenleme:
birde bu kodlar c# yazınca olmuyormu. vb yazmak zorundamıyız. o konuda bir gelişme veya çalışma veya yama varmı acaba.

Bildiğim kadarıyla yok.

Kodları aşağıdaki gibi değiştiriniz. "Bas_Sat" değişkeni, başlangıç satırını belirlemek için tanımlanmıştır..

Kod:
Sub AyrıTopla()
Set Sv = Sheets("Veriler")
Application.ScreenUpdating = False
Sheets("Defter").Select
 
Bas_Sat = 6 [COLOR=darkgreen]' Başlangıç Satırı İçin Değişken[/COLOR]
 
Range("A" & Bas_Sat & ":D65536").ClearContents
sonv = Sv.Cells(Rows.Count, "A").End(xlUp).Row
    Sv.Range("A1:D" & sonv).Copy Range("A" & Bas_Sat)
 
For i = Cells(Rows.Count, "A").End(xlUp).Row To Bas_Sat Step -1
    If Cells(i, "A") Mod 50 = 0 Then
        Rows(i + 1 & ":" & i + 2).Insert Shift:=xlDown
        Range("C" & i + 1) = "Sayfa Toplam"
        Range("C" & i + 2) = "Nakil"
        Range("D" & i + 1) = "=Sum(D" & i - 49 & ":D" & i & ")"
        Range("D" & i + 2) = "=Sumif(C1:C" & i + 1 & "," & "C" & i + 1 _
        & "," & "D1:D" & i + 1 & ")"
    End If
Next i
Application.ScreenUpdating = True
End Sub
.
 
tekrar merhaba. ufak bi sorun var sanırım.
orjinal dosyada denediğimde herşey normal çalışıyor, verileri düzgün kopyalıyor ama döngünün son adımında hata veriyor nedenini anlayamadım. halbuki örnek gönderirken sadece isimleri değiştirip gönderdim (öyle sanıyorum). ve ayrıca sayfanın en üstünde iki satır fazladan oluşuyor yani en üstte toplam ve nakil oluşuyor.
acaba tekrar bakabilrimisiniz. sorun nedir.
birde bu verilerin sadece içeriğini alabilirmiyiz. örneğin ben defter sayfasında bazı biçimlendirme ayarları yaptım. hücre renkleri, kenarlıkları falan ama modülü çalıştırınca bunlar kayboluyor. acaba veriler sayfasından sadece hücre içeriğini almak mümkün mü. eğer zahmetli bir işse kalsın.
 

Ekli dosyalar

Bu şekilde deneyiniz..

Kod:
Sub Sayfala()
Set Sv = Sheets("Veriler")
Application.ScreenUpdating = False
Sheets("Defter").Select
 
Bas_Sat = 1 [COLOR=green]' Başlangıç Satırı İçin Değişken[/COLOR]
 
Range("A" & Bas_Sat & ":D65536").ClearContents
sonv = Sv.Cells(Rows.Count, "A").End(xlUp).Row
 
    Sv.Range("A[COLOR=red][B]2[/B][/COLOR]:D" & sonv).Copy
    Range("A" & Bas_Sat).PasteSpecial xlPasteValues, xlNone
    Application.CutCopyMode = False
 
[A1].Select
For i = Cells(Rows.Count, "A").End(xlUp).Row To Bas_Sat Step -1
    If Cells(i, "A") Mod 50 = 0 Then
        Rows(i + 1 & ":" & i + 2).Insert Shift:=xlDown
        Range("C" & i + 1) = "Sayfa Toplam"
        Range("C" & i + 2) = "Nakil"
        Range("D" & i + 1) = "=Sum(D" & i - 49 & ":D" & i & ")"
        Range("D" & i + 2) = "=Sumif(C1:C" & i + 1 & "," & "C" & i + 1 _
        & "," & "D1:D" & i + 1 & ")"
    End If
Next i
    Columns("B:B").NumberFormat = "m/d/yyyy"
    Columns("A:D").EntireColumn.AutoFit
 
Application.ScreenUpdating = True
End Sub

Hata almanızın nedenini kırmızı ile işaretledim. Veri aldığınız sayfa hangi hücreden başlıyacaksa ona göre kodu değiştirmelisiniz. 1 olan değeri 2 yaptm. Ayrıca biçim olayınıda ekledim..

.
 
Geri
Üst