• DİKKAT

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

sayfalar arasından data aktarımı yapan makro

Katılım
22 Mayıs 2012
Mesajlar
39
Excel Vers. ve Dili
office 2007
Merhaba arkadaşlar
Ekte gönderdigim dosyada sayflar arası veri aktarımı yapan bi kod yazmaya calıştım ama bana bi hata vermektedir yardımcı olur musun neden veriyor bu hatayı?
 

Ekli dosyalar

Dosyada herhangi bir kod yok...
Dosyanızı .xlsm ya da .xls olarak kaydedip, tekrar ekleyiniz...
 
Murat Hocam teşşekkür ederim ilgin için sorunuma çözüm buldum.
 
Bir şey yapmadığım için teşekkür etmenize gerek yok da, nasıl çözdünüz görebilir miyim ? :dusun:
 
tabiki görebilirsiniz bilgi paylaşımı güzeldir bazen sizin taraftan bazen bu taraftan akış olmalı degil mi:)
 

Ekli dosyalar

Rica etsem, kod penceresindeyken View menüsünden Locals Window'u seçer misiniz ?
Şimdi mouse ile makroda bir yeri seçin ve F8 tuşuna basılı tutun. Çalışan makronun hangi işlemleri gerçekleştirdiğini sarı renk ile takip edebilirsiniz.
Ayrıca Locals penceresinde yazdığınız kodların hangi işlemleri yaptığını, değişkenlerin aldığı değerleri vs. göreceksiniz. Sarı renk End Sub yazan satıra gelene kadar F8'e basılı tutun. ;)
İşte makroyu çalıştırdığınız andan itibaren, işlemler bitene kadar geçen anlık zamanda, siz farkında değilsiniz ama bilgisayarınız o kadar işlem yapıyor.

Belirtmek istediğim: Sayfa1'de 5-6 satırlık tablodan istediğiniz şarta uyanları diğer sayfaya kopyalamak için yazdığınız kodun ne kadar zaman harcadığıdır.
Gereksiz yere döngüyü 1 ile 600. satır arasında kurmuşsunuz. Satır boş bile olsa 1. satırdan 600. satıra kadar boşuna kontrol edecek.
Sürekli bir sayfadan şarta uyan satırı kontol edip kopyalıyor ve diğer sayfayı seçip yapıştırıyor.
Sonra tekrar yine önceki sayfaya dönüyor, tekrar kontrol edip şarta uyan satırı kopyalayor ve diğer sayfayı seçip yapıştırıyor. Bir o sayfaya bir bu sayfaya geçip duruyor.
Makronun adı doğru: ise_yarar, ama yarayana kadar da bir sürü gereksiz işlem yapıyor. Bunu görün ve kodları yazarken en kısa yoldan çözüme ulaşmaya bakın.

Aşağıdaki kodları bir deneyin ve dediğim gibi F8 ile bir kontrol edin bakalım aradaki fark ne kadar ?

Kod:
Sub Emre()
    Dim i As Integer
    For i = 1 To Range("A65536").End(3).Row
        If Cells(i, 7) > 0 Then
           Rows(i).Copy Sayfa2.Range("A65536").End(3)(2, 1)
        End If
     Next i
    i = Empty
End Sub

İyi akşamlar...
 
Son düzenleme:
Murat Hocam
Makro konusunda cok fazla bilgim yok burda döngünün uzun olmasının sebebi başka bir sayafdan alıp kodları boş bi sayfaya yazdıgım içindir.
Sizin koda gelince güzel, kısa ve daha kullanışlı görünüyor bana alternatif sundugunuz için teşekkür ederim.
iyi akşamlar
 
Bilginiz olmadığını görüyorum ve bu sebeple bir şeyler öğretmeye çalışıyorum.
Makrolarda döngüler çok kullanılır. Eğer öğrenmek isterseniz; Arama kutucuğuna Döngüler yazıp bilgi alabilirsiniz...

Önerdiğim kodu beğendiğinize sevindim. :D

İyi akşamlar..
 
Geri
Üst