• DİKKAT

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

hücreler arası veri kontrolü yapma ve değerleri başka hücreye kopyalama

  • Konbuyu başlatan Konbuyu başlatan jplay
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Ekim 2010
Mesajlar
5
Excel Vers. ve Dili
Excel 2007
Merhaba arkadaşlar,
Bir Arkadaşım yazılımcı olduğum için bir kaç gün önce bu konuda yardım istemişti..
bugun biraz baktım ama biraz daha vakit ayırmak gerektiini farkettim..gerçi hala bakıyorum..
Problem şu

tek bir çalışma sayfanız var...
100.000 kişilik isim listeniz var..random olarak incelediklerinizin 5000 tanesinin ismini ayrı bir sutun a kayddetiniz..incelemediğiniz 9500 tanesinin ismini başka bir sutun a kopylamak için bir kod veya function yazmak gerekiyor sanırım..

For Döngüsü lazım...1. hücredeki değer için ayrılmış olan 5000 kişilik listede dolaşıp eşeleşen değer varsa return yoksa copy yapmam lazım
sonra 2. hücreye geçmem lazım..


bu konuda yardım eden arkadaşlar için bende kendi çapımda yardımlarımı sunarım



iyi günler
 
Son düzenleme:
Selamlar,

Forumumuza hoşgeldiniz.

Sütun bilgisi vermediğiniz için aşağıdaki sütunları baz alarak kod yazdım. Siz kendinize uyarlarsınız.

Liste A sütununda; (100.000 kişilik liste)
Kontrol edilecek isimler C sütununda; (5.000 kişilik liste)
E sütununa ise yeni isimler listelenmektedir.


Kod:
Option Explicit
 
Sub İSİMLERİ_KONTROL_ET_AKTAR()
    Dim X As Long, Satır As Long
    
    Satır = 1
    Range("E:E").ClearContents
    
    For X = 1 To Range("A1048576").End(3).Row
        If WorksheetFunction.CountIf(Range("C:C"), Cells(X, "A")) = 0 Then
            Cells(Satır, "E") = Cells(X, "A")
            Satır = Satır + 1
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Burda
For X = 1 To Range("A1048576").End(3).Row

satırını anlayamadım...Burda A sutunu tümden mi seçiliyor.

End(x).Row kullanımı ne anlamda acaba kullanılıyor..

Çünkü ben row döngüyü çalıştıramadım row değeri döndüğü için for 1 kere çalışıyor...

Range("A1048576") kısmına A nın hangi değer ini yazdınız acaba.
 
Son düzenleme:
Selamlar,

Siz profilinizde 2007 versiyon kullandığınızı belirtmişsiniz. Bu sebeple Range("A1048576") olarak kullandım. Bu komut en alttaki hücreden yukarı doğru kontrol yaparak en son dolu satırı tesbit eder.

2007 versiyonda son satır numarası 1048576 dır.

Eğer verileriniz benim bir önceki mesajımda yazdığım şekilde ise döngü mutlaka çalışmalıdır. Eğer çalışmıyorsa örnek dosya ekleyin kontrol edelim.
 
Valla kendi işin gibi ilgelendin teşekkür ederim

ben de bir araştrıayım versiyonla alakalı durumu

dosyayı ekde gönderiyorum bana atıldığı şekilde..


Özel e de mesaj attım
 

Ekli dosyalar

Selamlar,

Örnek dosyanıza göre aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub İSİMLERİ_KONTROL_ET_AKTAR()
    Dim X As Long, Satır As Long
 
    Satır = 2
    Range("S:S").ClearContents
 
    For X = 2 To Range("H1048576").End(3).Row
        If WorksheetFunction.CountIf(Range("R:R"), Cells(X, "H")) = 0 Then
            Cells(Satır, "S") = Cells(X, "H")
            Satır = Satır + 1
        End If
    Next
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Geri
Üst