İçerik Ayırma

ta2uk

Altın Üye
Katılım
16 Aralık 2009
Mesajlar
68
Excel Vers. ve Dili
03 türkçe
Altın Üyelik Bitiş Tarihi
21-10-2024
Orijinali 2000 stır olan örnek tabloda;

Sayfa2 de yer alan sayılardan biri Sayfa1 de bulunan D sütununda var ise o sayının bulunduğu satırın Sayfa3'e

Eğer yok ise Sayfa4'e taşınmasına ihtiyacım var.

Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Bulduğunu aktaracak ta, aktarılan aynı zamanda Sayfa1 den silinecek mi?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Silinirse bulunanlar aktarılanlar, kalanlar da eşleşmeyenler olduğu için toptan sayfa4 e aktarılır.
Eğer veriler kalacaksa, o zaman kodlar daha çetrefilli hale gelir.
O yüzden sordum ki, kod yazacak arkadaşlara yardımcı olsun.
 

ta2uk

Altın Üye
Katılım
16 Aralık 2009
Mesajlar
68
Excel Vers. ve Dili
03 türkçe
Altın Üyelik Bitiş Tarihi
21-10-2024
Merhaba,
Silinirse bulunanlar aktarılanlar, kalanlar da eşleşmeyenler olduğu için toptan sayfa4 e aktarılır.
Eğer veriler kalacaksa, o zaman kodlar daha çetrefilli hale gelir.
O yüzden sordum ki, kod yazacak arkadaşlara yardımcı olsun.
Teşekkür ederim, kalmasına gerek yok, orijinali zaten mevcut.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları bir deneyin, hız konusunu gerçek dosyanızda nasıl olduğunu söylerseniz fikir sahibi oluruz.
Sayfa1 deki Yeşil renk Sayfa3'e, mavi renk ise Sayfa4'e aktarıldığını belirtiyor.
Çift aktarım kontrol edilmedi, veriler silinmediği için, gerekirse o da yapılabilinir.

Kod:
Public Sub Deneme()

Dim i   As Long, _
    j   As Long, _
    k   As Integer, _
    c   As Range, _
    arr As Variant
    
arr = Sayfa1.Range("A1").CurrentRegion.Value
    
For i = 2 To UBound(arr, 1)

    Set c = Sayfa2.Range("A:A").Find(arr(i, 4), LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        j = Sayfa3.Cells(Rows.Count, "A").End(xlUp).Row + 1
        For k = 1 To UBound(arr, 2)
            Sayfa3.Cells(j, k) = arr(i, k)
        Next k
        Sayfa1.Range("D" & i).Interior.Color = vbGreen
    Else
        j = Sayfa4.Cells(Rows.Count, "A").End(xlUp).Row + 1
        For k = 1 To UBound(arr, 2)
            Sayfa4.Cells(j, k) = arr(i, k)
        Next k
        Sayfa1.Range("D" & i).Interior.Color = vbBlue
    End If

Next i

MsgBox "İşlem Bitmiştir...."

End Sub
 

ta2uk

Altın Üye
Katılım
16 Aralık 2009
Mesajlar
68
Excel Vers. ve Dili
03 türkçe
Altın Üyelik Bitiş Tarihi
21-10-2024
Merhaba,

Aşağıdaki kodları bir deneyin, hız konusunu gerçek dosyanızda nasıl olduğunu söylerseniz fikir sahibi oluruz.
Sayfa1 deki Yeşil renk Sayfa3'e, mavi renk ise Sayfa4'e aktarıldığını belirtiyor.
Çift aktarım kontrol edilmedi, veriler silinmediği için, gerekirse o da yapılabilinir.

Kod:
Public Sub Deneme()

Dim i   As Long, _
    j   As Long, _
    k   As Integer, _
    c   As Range, _
    arr As Variant
   
arr = Sayfa1.Range("A1").CurrentRegion.Value
   
For i = 2 To UBound(arr, 1)

    Set c = Sayfa2.Range("A:A").Find(arr(i, 4), LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        j = Sayfa3.Cells(Rows.Count, "A").End(xlUp).Row + 1
        For k = 1 To UBound(arr, 2)
            Sayfa3.Cells(j, k) = arr(i, k)
        Next k
        Sayfa1.Range("D" & i).Interior.Color = vbGreen
    Else
        j = Sayfa4.Cells(Rows.Count, "A").End(xlUp).Row + 1
        For k = 1 To UBound(arr, 2)
            Sayfa4.Cells(j, k) = arr(i, k)
        Next k
        Sayfa1.Range("D" & i).Interior.Color = vbBlue
    End If

Next i

MsgBox "İşlem Bitmiştir...."

End Sub
Üstat hız konusundan işlem hızını kastediyorsanız sorun yok. Çift aktarım konusunda da Sayfa2 de yer alan aranacak değerler benzersiz(yinelenenler kaldırılmış) olduğu için sorun olmayacağını düşünüyorum. Çok teşekkür ederim emeğinize, elinize sağlık...
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Güle güle kullanınız.
 
Üst