• DİKKAT

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

VBA ile excel de iki sayfa arası boş satıra kopyalama yapma.

Katılım
28 Ocak 2013
Mesajlar
38
Excel Vers. ve Dili
Office Excel 2003
Önelikle formda arama yaptım fakat birebir bulamadığımı belirtmek isterim.Benzer olanlarda mutlaka farklılık var ve bizim uygulamamız da da sonuç vermiyo.Mesela aşağıdaki kodda olduğu gibi

Private Sub CommandButton35_Click()
Range("E6:N6").Select
Selection.Copy
Sheets("MEB").Select
Sheets("MEB").Range("A5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 4).Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

kodları uyum sağlamadı.Biz belirli sayfanın belirli satır ve hücrelerinden buton ile kopyala yaparak MEB isimli sayfanın belirli satır ve hücerelerine değer yapıştırma yapmasını istiyoruz.Mesela NOT GİRİŞLERİ isimli sayfanın C6 D6 hücerelerini MEB isimli sayfanın B10 ve C10 hücrelerine yine NOT GİRİŞLERİ isimli sayfanın E6:N6 arası hücrelerini MEB isimli sayfanın E10:AC10 arası hücrelerine değer yapıştırması gerekli.Ancak bunu yaparken ikinci bir kopyalama işleminde aynı satır ve hücrelerin boş olanlarından devam etmesi yani üzerine kopye etmemesi gerekir.Belirtilen satırlar doluysa bir altına olacak şekilde olmalı.Kodlarda ActiveCell kullanılmış biz kopyalama işlemi sırasında NOT GİRİŞLERİ sayfasından MEB sayfasına geçiş yapmak istemiyoruz.

Değerli zamanını bize ayrarak sorumuzu ve sorunumuzu cevaplama zahmetinde bulunanlara şimdiden teşekkür eder.Harcadığı zamanın karşılığını fazlası ile bulmasını temenni ederiz.Saygılar....İyi ki varsın EXCEL.WEB.TR.
 
Son düzenleme:
Öncelikle konu başlığınızı sorunuza uygun hale getirmeniz gerekiyor. Konunuza daha iyi yardımcı olabilmek için de örnek dosya eklemeniz faydalı olacaktır.
 
Merhaba,
"...NOT GİRİŞLERİ isimli sayfanın E6:N6 arası hücrelerini MEB isimli sayfanın E10:AC10 arası hücrelerine değer yapıştırması gerekli..." diyorsunuz. E6:N6 arasında 10 hücre, E10:AC10 arasında ise 25 hücre var.
"...Belirtilen satırlar doluysa bir altına olacak şekilde olmalı..." diyorsunuz. 10 hücreyi 25 hücreye nasıl yerleştireceğiz ki satırın dolduğunu varsayıp alt satıra geçelim?
 
Merhaba sayın dEdE öncelikle ilginize çok teşekkür eder saygılar sunarım.10 hücre 25 hücreye değil sayfadaki tabloda 25 hücre var.Biz 10 hücre kopyalamak istiyorsak 25 hücreli tabloyu 10 hücre kopyalanacak ve bir alta geçecek şekilde sınırlandırabilirmiyiz.Başka yerde 15 veya 25 de olabilmeli yani ayarlanabilir olmalı.Yapıştırılacak alan 25 hücreli bunun tamamını kullanmak zorunda değiliz.Saygılar.
 
Son düzenleme:
Merhaba sayın dEdE öncelikle ilginize çok teşekkür eder saygılar sunarım.10 hücre 25 hücreye değil sayfadaki tabloda 25 hücre var.Biz 10 hücre kopyalamak istiyorsak 25 hücreli tabloyu 10 hücre kopyalanacak ve bir alta geçecek şekilde sınırlandırabilirmiyiz.Başka yerde 15 veya 25 de olabilmeli yani ayarlanabilir olmalı.Yapıştırılacak alan 25 hücreli bunun tamamını kullanmak zorunda değiliz.Saygılar. (Sayfalar ekte.)
 
Merhaba,
Açıklamalarınızdan anladığım kadarıyla aşağıdaki kodu yazdım.
Kodun çalışması için; E6 dan başlayarak AC6'ya kadar kaç hücre kopyalayacaksanız o hücreleri seçip aktar tuşuna basmalısınız. Seçim yapmazsanız aktarma olmayacaktır.
Kod:
Sub Aktar()
    Set s1 = Sheets("NOT GİRİŞLERİ")
    Set s2 = Sheets("MEB")
    ss = s2.Range("B" & Rows.Count).End(3).Row + 1
    If ss < 10 Then ss = 10
    s2.Range("B" & ss & ":C" & ss).Value = s1.Range("C6:D6").Value
    x = Selection.Count + 4
    s2.Range(s2.Cells(ss, 5), s2.Cells(ss, x)).Value = s1.Range(s1.Cells(6, 5), s1.Cells(6, x)).Value
    MsgBox "Aktarma İşlemi Tamamlandı.", vbInformation, "dEdE " & Application.UserName & "'e Başarılar diler."
End Sub
 

Ekli dosyalar

Sayın dEdE çok teşekkür ederim ancak tam olarak ifade edemedim her halde seçim yapmaya gerek yok. Not girişleri sayfasından MEB sayfasına butona tıkladığımızda direkt kopyalama yapmasını istiyoruz.Mesela 4 satır 10 hücre kopyaladık ikinci tıklamamızda 5.satırdan itibaren boş olan satıra öğrenci nosu ile adı soyadı olan hücreler ve 10 hücreyi kopyalamasını istiyoruz.Toplam 12 hücre olmuş oluyo.Örnek: c6 (öğrenci numarası) d6(öğrenci adı)e6:n6 arası (10 sorunun notlar) bunları diğer sayfada yani MEB sayfasında b10 (öğrenci numarası) c10 (öğrenci adı) e10:n10 arası (10 sorunun notları) olacak şekilde kopyalamak istiyoruz.Her kopyalamada boş olan satırlardan itibaren kopyalamalı.Diyelimki bu sınavda 10 soru vardı bu gün 5 öğrenci yarın 3 öğrenci ...NOT GİRİŞLERİ sayfasına notlarını girerek MEB isimli sayfaya 30 öğrencinin sınav notunu kopyaladık. II.Sınavda ise 25 soruluk test sınavı oldu kodların yalnızca kopyalanacak ve yapıştırılacak hücre aralığını değiştirerek yani 10 sorudan 25 soru notuna çıkararak kopyalama yapmasını sağlayacak şekilde olması gerekli.Tabi bu arada önceki 10 soruluk sınav notlarını siliyoruz.Sonra kopyala yapıştır yapıyoruz.Hücre aralığı kod değişikliklerini yapabilirim.Vba kodlarını tanımlayabiliyorum ama yazamıyorum.
Ben kendimi iyi insan olarak tanımlıyorumdum sizleri gördükten sonra çok şaşırdım doğrusu benden daha iyi insanlar varmış.Yardımlarınız için çok çok teşekkür ederim. Saygılar.
 
Merhaba,
Açıklamalarınızdan anladığım şekliyle kodu değiştirdim.
Eğer istediğiniz bu değilse, örnek bir dosya üzerinde açıklama yaparsanız ona göre değerlendiririz.
Hoşçakalın.
Kod:
Sub Aktarx()
    Set s1 = Sheets("NOT GİRİŞLERİ")
    Set s2 = Sheets("MEB")
    ss = s2.Range("B" & Rows.Count).End(3).Row + 1
    If ss < 10 Then ss = 10
    s2.Range("B" & ss & ":C" & ss).Value = s1.Range("C6:D6").Value
    s2.Range("E" & ss & ":AC" & ss).Value = s1.Range("E6:AC6").Value
    MsgBox "Aktarma İşlemi Tamamlandı.", vbInformation, "dEdE " & Application.UserName & "'e Başarılar diler."
End Sub
 
Sayın dEdE Teşekkür ederim.Kodları UserForm üzerindeki butona atadım çalışmadı.Sayfa üzerine buton ekledim çalıştırdım yine çalışmadı hata verdi.Kodlarda s1 E6:N6 olmalıydı düzelttim.Yine olmadı.İsteğimiz UserForm üzerindeki bir butonla çalıştırmak.Bu arada çalışma kitabını ekliyorum gönderildi diyor fakat size ulaşmıyor.Yani sayfada görünmüyor.Çalışma kitabı masa üstünde. Gelişmiş moddan göndermeye çalışıyorum olmuyo gibi...saygılar.
 
Sayın dEdE Teşekkür ederim.Kodları UserForm üzerindeki butona atadım çalışmadı.Sayfa üzerine buton ekledim çalıştırdım yine çalışmadı hata verdi.Kodlarda s1 E6:N6 olmalıydı düzelttim.Yine olmadı.İsteğimiz UserForm üzerindeki bir butonla çalıştırmak.Bu arada çalışma kitabını ekliyorum. saygılar.
 

Ekli dosyalar

Son düzenleme:
Merhaba,
Kodları UserForm üzerinden çalışacak şekilde düzelttim.
CommandButton27(ADI VESOYADI) butonuna her basışta sadece E6:N6 satırını aktaracaksanız aşağıdaki kodu kullanmalısınız.
Kod:
Private Sub CommandButton27_Click()
    Set s1 = Sheets("A GRUBU PUAN GİRİŞİ")
    Set s2 = Sheets("MEB")
    ss = s2.Range("B" & Rows.Count).End(3).Row + 1
    If ss < 10 Then ss = 10
    s2.Range("B" & ss & ":C" & ss).Value = s1.Range("C6:D6").Value
    s2.Range("E" & ss & ":N" & ss).Value = s1.Range("E6:N6").Value
    MsgBox "Aktarma İşlemi Tamamlandı.", vbInformation, "dEdE " & Application.UserName & "'e Başarılar diler."
End Sub

CommandButton27(ADI VESOYADI) butonuna bastığınızda A GRUBU PUAN GİRİŞİ sayfasındaki tüm notları aktarmak istiyorsanız aşağıdaki kodu kullanmalısınız.
Kod:
Private Sub CommandButton27_Click()
    Set s1 = Sheets("A GRUBU PUAN GİRİŞİ")
    Set s2 = Sheets("MEB")
For i = 6 To Cells(Rows.Count, 4).End(3).Row
    ss = s2.Range("B" & Rows.Count).End(3).Row + 1
    If ss < 10 Then ss = 10
    s2.Range("B" & ss & ":C" & ss).Value = s1.Range("C" & i & ":D" & i).Value
    s2.Range("E" & ss & ":N" & ss).Value = s1.Range("E" & i & ":N" & i).Value
Next
    MsgBox "Aktarma İşlemi Tamamlandı.", vbInformation, "dEdE " & Application.UserName & "'e Başarılar diler."
End Sub
 
dEdE çok teşekkür ederim.Tam istediğim gibi olmuş elinize sağlık.Allah da sizin yardımcınız olsun.
 
Geri
Üst