• DİKKAT

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

Çözüldü Hücredeki veriyi, bulup ilgili satırı başka sayfaya aktarma

Katılım
5 Ekim 2023
Mesajlar
14
Excel Vers. ve Dili
Excel 365 - İngilizce
Merhaba,

Bir hücrede yazan veriyi aynı sayfada bulunan bir tablodan bulup ilgili satırı başka bir sayfaya aktarıp, kopyaladığı yerdeki satırı kaldırmak istiyorum.

Daha detayla anlatmam gerekirse;

F7 hücresinde Ali yazıyor. Altındaki C11:M100 aralığı olan tabloda Ali'ye ait bilgileri içeren bir satır var. Ben butona bastığım zaman tabloda F7 hücresinde yazan "Ali" ye veya listede olan herhangi bir isime ait satırı kopyalayıp başka bir sayfaya aktaracak ve kopyaladığı satırları tamamen silecek.

Şimdiden yardımlarınız için teşekkür ederim.
 
Sayfa1 ali'nin yazılı olduğu sayfa, sayfa2 aktarılan sayfa.
Bu isimleri kendi dosyanıza göre uyarlayın.
Kod:
Sub aktar()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set bul = s1.Range("C11:M100").Find(s1.Range("F7"))
s1.Rows(bul.Row).Copy s2.Range("A" & (s2.Cells(Rows.Count, 3).End(3).Row + 1))
s1.Rows(bul.Row).Delete
End Sub
 
Son düzenleme:
Yukardaki kodları ismi F7 den alacak şekilde değiştirdim.

Yardımınız için teşekkür ederim.

Birkaç problemim var.

1-) değeri bulduktan sonra tüm satırı taşıdığı için tablonun dışında kalan düzenlemeleri bozuyor. Taşınmasını istediğim verileri içeren tablo C11:M100 arasında. Sadece bulduğu değere ait satırı taşıması gerekiyor. Yani değeri bulduktan sonra hangi satırdaysa Örneğin C11:M11 arasını taşımalı.

2-) aktardığı sayfada verileri yapıştırması gereken tabloda B3 ile bağlayıp L sütünuna kadar devam etmektedir.
 
Son düzenleme:
Aranan isim hep aynı sütunda mı oluyor.
Daha doğrusu biraz veri işlenmiş bir örnek dosyayı tcdosya gibi bir dosya paylaşım sitesine ekleyerek link bitirirsen daha çabuk sonuç nalırsın.
 
Kod:
s1.Rows(bul.Row).Delete
Yukarıdaki satır yerine aşağıdaki satırı yazarak deneyin
Kod:
s1.Range("C" & bul.Row & ":M" & bul.Row).Delete
 
Yok, yanlış olmuş, Tablo olduğunu fark etmemişim doğru kod aşağıda
Kod:
s1.Range("C" & bul.Row & ":M" & bul.Row).ListObject.ListRows(bul.Row - 10).Delete
 
Yok, yanlış olmuş, Tablo olduğunu fark etmemişim doğru kod aşağıda
Kod:
s1.Range("C" & bul.Row & ":M" & bul.Row).ListObject.ListRows(bul.Row - 10).Delete

Diğer kodda çalışmıştı ama benim göremediğm birşey var sanırım :) Çok teşekkür ederim.

Silme kodunu başka bir sayfaya da uygulamak istersem yukarıdaki kodun sayfa numarasını değiştirmem yeterli olur mu?
 
Kod:
Set s1 = Sheets("Sayfa1")
Eğer verilerin aktarılıp, sonra o satırın silinecek diğer sayfanın da formatı aynı fakat aktarılacak sayfa aynı (yani Sayfa2 ) ise.
Yukarıdaki satırdaki sayfa ismini değiştirmeniz gerekir.
 
Kod:
Set s1 = Sheets("Sayfa1")
Eğer verilerin aktarılıp, sonra o satırın silinecek diğer sayfanın da formatı aynı fakat aktarılacak sayfa aynı (yani Sayfa2 ) ise.
Yukarıdaki satırdaki sayfa ismini değiştirmeniz gerekir.

Şunu demek istedim. aktarma işleminden sonra 2 farklı sayfadan aynı veriyi bulup silecek.
 
Örnek dosya olunca daha kolay olur. Bu iki sayfadaki veriler aynı mı farklı ise iki kere mi aktarma yapılacak
 
Örnek dosya olunca daha kolay olur. Bu iki sayfadaki veriler aynı mı farklı ise iki kere mi aktarma yapılacak

Örnek Dosya 3

Dosyaya eklediğim sayfa3 ile mevcut sayfa1 deki veriler aynı olacak. Nasıl sayfa 1 den aktardıktan sonra ilgili satırı kaldırıyorsa sayfa 3 te de ilgili satırı kaldıracak. Tekrar aktarma işlemi yapmayacak.
 
Herhalde böyle
Kod:
Sub aktar()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
Set s3 = Sheets("Sayfa3")
Set bul = s1.Range("D10:D" & s1.Cells(Rows.Count, 4).End(3).Row).Find(s1.Range("F4"))
Set bul1 = s3.Range("D10:D" & s3.Cells(Rows.Count, 4).End(3).Row).Find(s3.Range("F4"))
s1.Range("C" & bul.Row & ":M" & bul.Row).Copy s2.Range("B" & s2.Cells(Rows.Count, 2).End(3).Row + 1)
s1.Range("C" & bul.Row & ":M" & bul.Row).ListObject.ListRows(bul.Row - 10).Delete
s3.Range("C" & bul1.Row & ":M" & bul1.Row).ListObject.ListRows(bul1.Row - 10).Delete
End Sub
 
Geri
Üst