• DİKKAT

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

İndex Match VBA kod hakkında

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba Arkadaşlar,
Kod:
Sub No_data()
For sut = 2 To WorksheetFunction.CountA(Range("a:a"))
Range("f" & sut) = Selection.FormulaArray = WorksheetFunction.Index(Sheets("Detailed").Range("b:b"), Match(Range("a" & sut)) & MatchMatch(Range("e" & sut)), Sheets("Detailed").Range("a:a") & Sheets("Detailed").Range("h:h"))

Next
End Sub
Yukarıdaki kodu kendime göre web den araştırarak yazmaya çalıştım ama bir türlü sonuç alamadım. Rica etsem yardımcı olabilir misiniz?
Amacım; İki sayfam var biri Detailed diğeri ise No data.
Nodata sayfamın F kolonuna Datailed sayfasında A2 ve E2 deki hücrelerinden başlayarak son hücreye kadar kontrol ettirip eşlediği yerde Detailed dosyasındaki B hücresindeki veriyi getirmek
İlginiz için şimdiden teşekkür ederim
 
Örnek dosya eklerseniz,daha çabuk ve doğru yanıt alabilirsiniz.
 
Örnek dosya eklerseniz,daha çabuk ve doğru yanıt alabilirsiniz.
 
Dosya ekleme sitelerinden birinden dosya linki yollayabilirsiniz.
 
Bu site üyelik istiyor.
Dosya TC gibi bir siteden yüklyebilirsiniz.
 
Sorunuzu anlayamadım.
Anlayan Başka bir arkadaş yanıt verecektir sanırım.
 
Dosyanızda isimler var.Linki kladırmanız doğru olacaktır.
 
Aşağıdaki kodları module içine ekleyip çalışıtrabilirsin.

C++:
Sub AraYaz()
Dim Veri, Datalar As Object, Liste
    Set Datalar = CreateObject("Scripting.Dictionary")
    Veri1 = Worksheets("Datailed").Range("A2:I" & Worksheets("Datailed").Range("A" & Rows.Count).End(3).Row).Value
    Veri2 = Worksheets("NoData").Range("A2:E" & Worksheets("NoData").Range("A" & Rows.Count).End(3).Row).Value
    
    For i = LBound(Veri1) To UBound(Veri1)
        If Not Datalar.Exists(Veri1(i, 1) & " - " & Veri1(i, 9)) Then
            Datalar.Add Veri1(i, 1) & " - " & Veri1(i, 9), i
        End If
    Next i
    ReDim Liste(1 To UBound(Veri2))
    For i = LBound(Veri2) To UBound(Veri2)
        If Not Datalar.Exists(Veri2(i, 1) & " - " & Veri2(i, 5)) Then
            Liste(i) = ""
        Else
            Liste(i) = Veri1(Datalar(Veri2(i, 1) & " - " & Veri2(i, 5)), 2)
        End If
    Next i
    Worksheets("Nodata").Range("F2").Resize(UBound(Liste), 1).Value = Application.Transpose(Liste)
End Sub
 
Aşağıdaki kodları module içine ekleyip çalışıtrabilirsin.

C++:
Sub AraYaz()
Dim Veri, Datalar As Object, Liste
    Set Datalar = CreateObject("Scripting.Dictionary")
    Veri1 = Worksheets("Datailed").Range("A2:I" & Worksheets("Datailed").Range("A" & Rows.Count).End(3).Row).Value
    Veri2 = Worksheets("NoData").Range("A2:E" & Worksheets("NoData").Range("A" & Rows.Count).End(3).Row).Value
   
    For i = LBound(Veri1) To UBound(Veri1)
        If Not Datalar.Exists(Veri1(i, 1) & " - " & Veri1(i, 9)) Then
            Datalar.Add Veri1(i, 1) & " - " & Veri1(i, 9), i
        End If
    Next i
    ReDim Liste(1 To UBound(Veri2))
    For i = LBound(Veri2) To UBound(Veri2)
        If Not Datalar.Exists(Veri2(i, 1) & " - " & Veri2(i, 5)) Then
            Liste(i) = ""
        Else
            Liste(i) = Veri1(Datalar(Veri2(i, 1) & " - " & Veri2(i, 5)), 2)
        End If
    Next i
    Worksheets("Nodata").Range("F2").Resize(UBound(Liste), 1).Value = Application.Transpose(Liste)
End Sub
https://s4.dosya.tc/server14/b3xs05/index_soru.xlsx.html
Öncelikle ilginiz için çok teşekkür ederim. Ben hata aldım dosyamın linki yukarıda yardımcı olursanız çok makbule geçer
 
@veyselemre beyin de gösterdiği gibi dosyanızda Hatalı hücreler var.
Onları elimine ederseniz kodlar çalışıyor. Ben kodu deneyerek göndermiştim. Elbette bu hataları elle düzelterek.
İlla böyle hatalı olarak kalacak diyorsanız kodları revize ederim.
 
@veyselemre beyin de gösterdiği gibi dosyanızda Hatalı hücreler var.
Onları elimine ederseniz kodlar çalışıyor. Ben kodu deneyerek göndermiştim. Elbette bu hataları elle düzelterek.
İlla böyle hatalı olarak kalacak diyorsanız kodları revize ederim.
Öncelikle ilgi gösterdiğiniz için çok teşekkür ederim. Hatalı olma ihtimaline göre kodları revize ederseniz çok teşekkür ederim
 
Öncelikle ilgi gösterdiğiniz için çok teşekkür ederim. Hatalı olma ihtimaline göre kodları revize ederseniz çok teşekkür ederim
Kod:
Sub İndex_match()
Dim hcr As Range
For Each hcr In Range("a2:a" & Cells(65536, "a").End(xlUp).Row)
Range("f" & hcr) = WorksheetFunction.Index(Sheets(Detailed.Name).Range("$a:$a"), WorksheetFunction.Match((Cells(hcr, 1).Value) & ((Cells(hcr, 5).Value)), (Sheets(Detailed.Name).Range("$a:$a")) & (Sheets(Detailed.Name).Range("$I:$I")), 0), 1)
Next
End Sub
Bende yukarıdaki kod ile yapmaya çalışıyorum ama yine sonuca ulaşamadım :(
 
Geri
Üst