• DİKKAT

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

İki Sayfa Arasında Açıklamaya Göre Arama Yapıp Karşılığına Kodu Yazma

Katılım
27 Ocak 2010
Mesajlar
207
Excel Vers. ve Dili
Excel 2010 VB Makro
Merhaba arkadaşlar.
Detaylı Liste sayfasındaki, Malzeme Açıklamasının (E sütunu), karşılığındaki Malzeme kodunu(D sütunu); Malzeme kodları sayfasından arayarak yazacak.
Detaylı Liste sayfasının; E sütununa malzeme açıklaması yazıldığında veya kopyalandığında kodlar otomatik gelecek.

Yardımcı olurmusunuz.
 

Ekli dosyalar

Selamlar,

Yanlış anlamışta olabilirim.
d2 Hücresine,

Kod:
=EĞER(EHATALIYSA(İNDİS('Malzeme Kodları'!$A:$B;KAÇINCI('Detaylı Liste'!$E2;'Malzeme Kodları'!$B:$B;0);1));"";İNDİS('Malzeme Kodları'!$A:$B;KAÇINCI('Detaylı Liste'!$E2;'Malzeme Kodları'!$B:$B;0);1))
 
Son düzenleme:
Hacam ilginiz için teşekkur ederim.
Bu kodu hücreye yazılmayacak. VB editöründe makro ile olacak.
Malzeme Kodları sayfasındaki malzeme kodları(yani A sütundaki veriler) , Detaylı Liste sayfasındaki Malzeme Açıklamalarının karşılığına gelecek. Detaylı liste sayfasındaki malzeme açıklaması sütununa yazılan, malzeme açıklamasının karşılığı olan kod (Malzeme Kodları Sayfasından alacak) D sütununa otamatik gelecek. Malzeme açıklamaı boş ise hiçberşey yapmayacak.

Yani başka bir şekilde ifade edersek;
Detaylı Liste sayfasının E sütununa yazılan verilerin karşığı, Malzeme Kodları Sayfasının A sütunundan gelecek. Detaylı Liste sayfasının D sütununa veriler; Malzeme Kodları sayfasının A sütunundan gelecek. Tabi bu verilerin gelmesi için Detaylı Listenin E sütununa malzeme açıklaması yazılması veya kopyalanarak bulunması gerekmektedir.
Teşekkur ederim.
 
Son düzenleme:
Selamlar,

Aşağıdaki kodu "Detaylı Liste" isimli sayfanın kod bölümüne uygulayıp denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim BUL As Range
    
    On Error GoTo Son
    If Intersect(Target, Range("E2:E65536")) Is Nothing Then Exit Sub
    If Target = "" Then
        Target.Offset(0, -1).ClearContents
    Else
        Set BUL = Sheets("Malzeme Kodları").Range("B:B").Find(Target)
        If Not BUL Is Nothing Then
        Target.Offset(0, -1).Value = BUL.Offset(0, -1).Value
        End If
    End If
Son:
End Sub
 
Hocam Teşekkur ederim Ellerinize sağlık.
istediğim gibi olmuş.
Kolay gelsin
 
Korhan Hocam;
Bu konuda bir ricam daha olacak.
Bu kodları "Detaylı Liste"nin altına değil de sayfanın içerisindeki bir commanbutton'un altına nasıl yerleştiririz.
Yani butona tıkladığım zaman malzeme kodlarını getirecek.
 
Arkadaşlar yukarıdaki kodu commandbutton ile çalıştıramadım.Acil yardım lütfen.
Birde eşleşmeyen kod ve açıklama için msjbox ile örneğin "e13 nolu hücredeki açıklamanın, malzeme kodu bulunamadı...!" uyarısı versin.
Yardımlarınızı bekliyorum.
 
Selamlar,

Aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Private Sub CommandButton1_Click()
    Dim X As Long, BUL As Range
 
    For X = 2 To Range("E65536").End(3).Row
        Set BUL = Sheets("Malzeme Kodları").Range("B:B").Find(Cells(X, "E"), [COLOR=red]LookAt:=xlWhole[/COLOR])
        If Not BUL Is Nothing Then
            Cells(X, "D").Value = BUL.Offset(0, -1).Value
        Else
            If MsgBox("E" & X & " hücresindeki açıklamanın malzeme kodu bulunamadı !" & _
            vbCrLf & "İşleme devam etmek istiyor musunuz?", vbCritical + vbYesNo) = vbYes Then
            End If
        End If
    Next
 
    MsgBox "İşleminiz tamamlanmıştır", vbInformation
End Sub
 
Korhan Hocam;
Teşekkur ederim kod çalışıyor.
Ellerinize sağlık.
 
Korhan Hocam,

Bu konuda bir yerde sıkıntı var yardımcı olabilirseniz sevinirim.
Şimdi E sütunundaki malzeme açıklamasının kodlarını, Malzeme kodları sayfasından bulup D sütununa yazmakta.
Malzeme açıklamasına göre arama yaparken örneğin; "PL, S355'in" kodunu bulacak.
"PL, S355'in" kodu yok ise kod bulunamadı uyarısı verip boş bırakarak devam etmesi gerekiyor.
Fakat o şekilde olmayıp "PL, S355'ten" sonra alfabetik olarak ilk gelen açıklamanın kodunu yazıyor. Yani PL, S355J0'ın kodunu bulup D sütununa yazmakta.

Bu sorunu düzeltme imkanımız var mı? Tam açıklamaya göre arama yaparak kodu D sütununa yazacak. Eksik veya fazla karakter var ise o açıklamanın kodu boş olacak.

Lütfen yardım edin.

İyi çalışmalar.
 
Selamlar,

Birebir eşleşme için üstteki mesajımdaki koda kırmızı eklenti yapılmıştır. İncelermisiniz.
 
Korhan hocam çok teşekkür ederim. İstediğim gibi çalışıyor.
Allah ne muradınız varsa versin :)
 
Geri
Üst