İ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
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Örnek dosya eklerseniz,daha çabuk ve doğru yanıt alabilirsiniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Örnek dosya eklerseniz,daha çabuk ve doğru yanıt alabilirsiniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosya ekleme sitelerinden birinden dosya linki yollayabilirsiniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Bu site üyelik istiyor.
Dosya TC gibi bir siteden yüklyebilirsiniz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sorunuzu anlayamadım.
Anlayan Başka bir arkadaş yanıt verecektir sanırım.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanızda isimler var.Linki kladırmanız doğru olacaktır.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,655
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
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
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,655
Excel Vers. ve Dili
Microsoft 365 Tr-64
@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.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
@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
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Ö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 :(
 
Üst