2.sayfadaki verinin üzerine 1.sayfadaki verileri yapıştırma

mahmyt

Altın Üye
Katılım
12 Aralık 2019
Mesajlar
94
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
16-03-2026
Öncelikle merhaba arkadaşlar;
1.sayfaya yeni veri girdiğim zaman 2.sayfadaki verileri önce tamamını silsin sonra makroya(1.sayfadaki A sütunundaki değer "D" ise gitsin 2.sayfada boş hücreye yapıştırsın) başlasın ancak yapmak istediğimde tarihe göre en son satır hem en alta hemde en üste gelmektedir.

Makro formül
'
Worksheets("DENİZLİ").Range("A1:AB99999").Clear
a = Worksheets("GENEL LİSTE").Cells(Rows.Count, 1).End(xlUp).Row
For i = 13 To a
If Worksheets("GENEL LİSTE").Range("A" & i).Value = "D" Then
Worksheets("GENEL LİSTE").Rows(i).Copy
Worksheets("DENİZLİ").Activate
Worksheets("DENİZLİ").Range("A8").PasteSpecial
B = Worksheets("DENİZLİ").Range("A" & Rows.Count).End(xlUp).Row
Worksheets("DENİZLİ").Range("A" & B + 1).Select
ActiveSheet.Paste
End If
Next i

End Sub

formül sonrası tekrar 1.sayfada en alta girdiğim veri aşağıdaki gibi olsun
A Sütunu B Sütunu C Sütunu
D 30.04.2020 600 TL
tekrar yukardaki formülü başlattığımda bu son girdiğim veri hem en üst boş satıra hemde en alta satıra gelmektedir.
 

mahmyt

Altın Üye
Katılım
12 Aralık 2019
Mesajlar
94
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
16-03-2026
Kısa bir şey sorayım yukarıdaki baya karmaşık oldu herhalde

For i = 13 To a
If Worksheets("GENEL LİSTE").Range("A" & i).Value = "D" Then
Worksheets("GENEL LİSTE").Rows(i).Copy
Worksheets("DENİZLİ").Activate
B = Worksheets("DENİZLİ").Range("A" & Rows.Count).End(xlUp).Row
Worksheets("DENİZLİ").Range("A" & B + 1).Select
ActiveSheet.Paste
End If
Next i

End Sub


yukarıdaki formülü denizli sayfasında istediğim satırdan başlatamıyorum haliyle bulduğu ilk boş satırın altına yapıştırıyor
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
1.sayfaya yeni veri girdiğim zaman 2.sayfadaki verileri önce tamamını silsin
Bu isteğinizi aşağıdaki satır yapıyor zaten:

Worksheets("DENİZLİ").Range("A1:AB99999").Clear

1.sayfadaki A sütunundaki değer "D" ise
Bu isteğinizin karşılığı ise aşağıdaki satır:

If Worksheets("GENEL LİSTE").Range("A" & i).Value = "D" Then

gitsin 2.sayfada boş hücreye yapıştırsın
Bu isteğinizi de
B = Worksheets("DENİZLİ").Range("A" & Rows.Count).End(xlUp).Row
Worksheets("DENİZLİ").Range("A" & B + 1).Select
ActiveSheet.Paste
satırları yapıyor.

Worksheets("DENİZLİ").Range("A8").PasteSpecial

Bu satır ise her veriyi A8 hücresine yapıştırıyor. Sorununuzun nedeni bu satır diye düşünüyorum. Bu satırı silerseniz işlem düzelecektir.

Kodun sade hali ise şöyledir:

Kod:
Sub aktar()
    Set s1 = Sheets("GENEL LİSTE")
    Set s2 = Sheets("DENİZLİ")
    son2 = s2.Cells(Rows.Count, "A").End(3).Row
    s2.Range("A1:AB" & son2).Clear
    a = s1.Cells(Rows.Count, 1).End(xlUp).Row
    sat = 1
    For i = 13 To a
        If s1.Range("A" & i) = "D" Then
            s1.Rows(i).Copy s2.Cells(sat, "A")
            sat = sat + 1
        End If
    Next
End Sub
 

mahmyt

Altın Üye
Katılım
12 Aralık 2019
Mesajlar
94
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
16-03-2026
Teşekkür ederim Yusuf44 bey
 
Üst