MAKRO İLE DÜŞEYARA 2 farklı veri listesi arasında çok sütünlarda istenilen değeri buldurma

Katılım
22 Kasım 2019
Mesajlar
13
Excel Vers. ve Dili
2013
Merhaba
Herkese iyi bayramlar dilerim. İşlerimde düşey arayı çok kullanıyorum. Bazı durumlarda düşeyarayı formül ile uygulamak çok zaman alıyor.
Listesinin ilk satırında firmamızın ürün kodu var diğer sütünlarda da o ürünü ifade eden OEM( 7 ya da daha fazla haneli sayılar oluyor.) İLk veri bendeki ürün listesi diğeri de müşeriden gelen bu ikisini kıyaslayıp hangi ürünün bizde olduğunu bulmak istiyorum. Bazı durumlarda bazı ürün koduna denk gelen 1 oem kodu oluyor bazılarında ise 6dan fazla
Bu konuda yardımcı olabilirmisiniz?
Elimde örnek dosya var gönderebileceğim. Şimdiden teşekkür ederim.
Saygılarımla
Ersin Yükselen
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hayırlı bayramlar.

Örnek dosyanızı dosya paylaşım sitelerinden birine yükleyerek ya da altın üye olarak paylaşabilirsiniz. Örnek dosyanızda nasıl bir çözüm istediğinizi belirtirseniz yardımcı olmaya çalışırız.
 
Katılım
22 Kasım 2019
Mesajlar
13
Excel Vers. ve Dili
2013
Hayırlı bayramlar.

Örnek dosyanızı dosya paylaşım sitelerinden birine yükleyerek ya da altın üye olarak paylaşabilirsiniz. Örnek dosyanızda nasıl bir çözüm istediğinizi belirtirseniz yardımcı olmaya çalışırız.
Merhaba
Dosyamı google drive a yükledim.
Yüklediğim dosyadan müşteriden gelen yazan listede ürün kodu boş olan sütüna ürün listesi yazan verilerden ürün kodlarını getirtmek istiyorum.
Bazı durumlarda ilk listedeki birinci sütün ile diğer listedeki 1.sütünda aradığım değer olmayabiliyor. Sonra 2. sütünda da arama eşleşmiyor. Tek tek bir seferde bütün sütunların karşılaştırılıp istenen değeri getirebilirmiyiz.
Şimdiden teşekkürler
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ürün listesi sayfasında ürün kodu sütunu göremedim.

Müşteriden gelen sayfasındaki 3 oem sütunundan hangisi dikkate alınacak?

Dosyada birkaç tane farklı örnek gösterirseniz (tabi neden öyle olduğunuz açıklayarak) iyi olur, tam olarak ne yapacağımızı anlamamızı sağlar.
 
Katılım
22 Kasım 2019
Mesajlar
13
Excel Vers. ve Dili
2013
Ürün listesi sayfasında ürün kodu sütunu göremedim.

Müşteriden gelen sayfasındaki 3 oem sütunundan hangisi dikkate alınacak?

Dosyada birkaç tane farklı örnek gösterirseniz (tabi neden öyle olduğunuz açıklayarak) iyi olur, tam olarak ne yapacağımızı anlamamızı sağlar.
Yusuf Bey
Müşteriden gelen 3 Oem sütünu da ayrı ayrı dikkate alınması gerekiyor.Bazı satırlar boş olmasına rağmen bazı satırlarda 3 ayrı numara var göreceğiniz gibi. Bunlar aynı ürünü gösteren numaralar 2 ayrı listede hangi numaranın hangi sütünda çıkacağı belli olmadığından sütün bazında her bir değeri her sütünda ayrı ayrı aratmak gerekiyor.
Tabii Haklısınız ben orada farklı yazmışım. ürün listesi H sütünü olan Türlas Codes aradığım değerler
Yani müşteriden gelen listesinde ürün kodu yazan yerlere ürün listesinde H sütünü Turlas kodu yazan verileri getirmek istiyorum.
1 önceki mesaj da düzgün ifade edemedim sanırım. düşey ara yaparken müşteriden gelen listesinde C2 sütunnunu ürün listesinde B sütünunda aratıyoruz. C2 değerini orda bulamassak C sütünunda aratıyoruz orda bulamassak öyle devam ediyor G sütünuna kadar.
Sonra Diyelim müşteriden gelen listesinde değeri bulamadık D sütünuna daki değerleri bir önceki gibi ürün listesinde B,C,D,E,F,G sütünlarında aratıyoruz. Aynı şekilde bu işlemi müşteriden gelen listesinde E sütünundaki değeler için yapıyoruz. Taaki aradığımız değeri bulana ya da bulamayana kadar. Burda amaç bütün ihtimalleri kontol edip var yok değerine ulaşabilmek.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makro istediğiniz işlemi yapıyor. Ancak nedense müşteriden gelen sayfasında metin olarak biçimlendirilmiş ama sayı olan Oem kodlarında hata veriyor ve iş yarım kalıyor. Hata verdiğinde Debug yapıp, hangi hücrede kaldığına bakarak o hücredeki değeri düzelttikten sonra makroyu tekrar çalıştırabilirsiniz. Hangi hücrede kaldığını anlamak için Debug yapınca sarı olan satırdaki urun ve oem kelimelerinin üstüne fareyi getirin. urun kelimesi kaçıncı satır, oem kelimesi ise kaçıncı sütun olduğunu gösterir. Örneğin urun 115, oem 4 ise müşteriden gelen sayfasında D115 hücresi hatalı demektir. Ne yaptıyssam bu hatayı aşmanın yolunu bulamadım maalesef:

PHP:
Sub oemler()
Set s1 = Sheets("ürün listesi")
Set s2 = Sheets("müşteriden gelen ")
son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "C").End(3).Row
s2.Range("C2:E" & son2).NumberFormat = "General"
Application.ScreenUpdating = False
yok = 0
For urun = 2 To son2
    kod = "yok"
    For oem = 3 To 5
        If s2.Cells(urun, oem) <> "" Then
            s2.Cells(urun, oem) = Replace(s2.Cells(urun, oem), Chr(10), "")
            For stoklar = 2 To 7
                If WorksheetFunction.CountIf(s1.Range(s1.Cells(2, stoklar), s1.Cells(son1, stoklar)), s2.Cells(urun, oem)) > 0 Then
                    sat = WorksheetFunction.Match(s2.Cells(urun, oem), s1.Range(s1.Cells(2, stoklar), s1.Cells(son1, stoklar)), 0)
                    s2.Cells(urun, "G") = s1.Cells(sat, "H")
                    stoklar = 7
                    oem = 5
                    kod = "var"
                End If
            Next
        End If
    Next
    If kod = "yok" Then
        s2.Range("A" & urun & ":I" & urun).Interior.Color = vbRed
    Else
        s2.Range("A" & urun & ":I" & urun).Interior.Color = xlNone
        yok = yok + 1
    End If
Next
Application.ScreenUpdating = True
If yok = 0 Then
    MsgBox "İşlem tamamlandı." & Chr(10) & Chr(10) & "Tüm oem kodları bulundu :)", vbInformation
Else
    MsgBox "İşlem tamamlandı." & Chr(10) & Chr(10) & "Oem kodu bulunamayan ürünler kırmızıaya boyandı", vbInformation
End If
End Sub
 
Katılım
22 Kasım 2019
Mesajlar
13
Excel Vers. ve Dili
2013
Aşağıdaki makro istediğiniz işlemi yapıyor. Ancak nedense müşteriden gelen sayfasında metin olarak biçimlendirilmiş ama sayı olan Oem kodlarında hata veriyor ve iş yarım kalıyor. Hata verdiğinde Debug yapıp, hangi hücrede kaldığına bakarak o hücredeki değeri düzelttikten sonra makroyu tekrar çalıştırabilirsiniz. Hangi hücrede kaldığını anlamak için Debug yapınca sarı olan satırdaki urun ve oem kelimelerinin üstüne fareyi getirin. urun kelimesi kaçıncı satır, oem kelimesi ise kaçıncı sütun olduğunu gösterir. Örneğin urun 115, oem 4 ise müşteriden gelen sayfasında D115 hücresi hatalı demektir. Ne yaptıyssam bu hatayı aşmanın yolunu bulamadım maalesef:

PHP:
Sub oemler()
Set s1 = Sheets("ürün listesi")
Set s2 = Sheets("müşteriden gelen ")
son1 = s1.Cells(Rows.Count, "B").End(3).Row
son2 = s2.Cells(Rows.Count, "C").End(3).Row
s2.Range("C2:E" & son2).NumberFormat = "General"
Application.ScreenUpdating = False
yok = 0
For urun = 2 To son2
    kod = "yok"
    For oem = 3 To 5
        If s2.Cells(urun, oem) <> "" Then
            s2.Cells(urun, oem) = Replace(s2.Cells(urun, oem), Chr(10), "")
            For stoklar = 2 To 7
                If WorksheetFunction.CountIf(s1.Range(s1.Cells(2, stoklar), s1.Cells(son1, stoklar)), s2.Cells(urun, oem)) > 0 Then
                    sat = WorksheetFunction.Match(s2.Cells(urun, oem), s1.Range(s1.Cells(2, stoklar), s1.Cells(son1, stoklar)), 0)
                    s2.Cells(urun, "G") = s1.Cells(sat, "H")
                    stoklar = 7
                    oem = 5
                    kod = "var"
                End If
            Next
        End If
    Next
    If kod = "yok" Then
        s2.Range("A" & urun & ":I" & urun).Interior.Color = vbRed
    Else
        s2.Range("A" & urun & ":I" & urun).Interior.Color = xlNone
        yok = yok + 1
    End If
Next
Application.ScreenUpdating = True
If yok = 0 Then
    MsgBox "İşlem tamamlandı." & Chr(10) & Chr(10) & "Tüm oem kodları bulundu :)", vbInformation
Else
    MsgBox "İşlem tamamlandı." & Chr(10) & Chr(10) & "Oem kodu bulunamayan ürünler kırmızıaya boyandı", vbInformation
End If
End Sub
Denedim çalıştı. Çok teşekkür ederim emeğinize sağlık.
 
Üst