Makro ile üç veriyi düşeyara ile bulmak

Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Merhabalar; arkadaşlar; Ekli dosyamda seçime göre TANIMLAR sayfasındaki verileri düşeyara yöntemi ile almak istiyorum, forumdan bir kod buldum, ancak sadece birini alabildim, ancak ben yapacağım seçimle 3 veriyi almak istiyorum. Teşekkürler.
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Kod:
=DÜŞEYARA(F9;TANIMLAR!B:D;2;0)
formülü ile alabilirsiniz. 2 yerine 3 yazarsanız D sütunundaki veriyi alırsınız.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Makro istemişsiniz sanırım.

Sayfanın kod bölümüne;
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [F9:F18]) Is Nothing Then Exit Sub
 
    Dim c As Range, St As Worksheet
 
    Set St = Sheets("TANIMLAR")
 
    With Target
        Set c = St.Range("B:B").Find(.Value, , xlValues, xlWhole)
        If Not c Is Nothing Then
            Cells(.Row, "L") = St.Cells(c.Row, "D")
            Cells(.Row, "M") = St.Cells(c.Row, "C")
        Else
            Cells(.Row, "L") = "Bulunamadı.."
            Cells(.Row, "M") = ""
        End If
    End With

End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Ömer abi eline sağlık çok güzel oldu abim, birde abi A9 dan başlayıp her işlem için sıra numarası makro ile eklenir mi yani ben bunu =EĞER(F9="";"";BAĞ_DEĞ_DOLU_SAY($F$9:F9)) bu formül ile yapmıştım, bu formülde makro olarak yazdığınız makroya dahil edilebilir mi teşekkürler.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [F9:F18]) Is Nothing Then Exit Sub
 
    Dim c As Range, St As Worksheet, i As Byte, sat As Byte
 
    Set St = Sheets("TANIMLAR")
 
    With Target
        Set c = St.Range("B:B").Find(.Value, , xlValues, xlWhole)
        If Not c Is Nothing Then
            Cells(.Row, "L") = St.Cells(c.Row, "D")
            Cells(.Row, "M") = St.Cells(c.Row, "C")
        Else
            Cells(.Row, "L") = "Bulunamadı.."
            Cells(.Row, "M") = ""
        End If
    End With
    
    [A9:A18] = ""
    sat = 1
    For i = 9 To 18
        If Cells(i, "F") <> "" Then
            Cells(i, "A") = sat
            sat = sat + 1
        End If
    Next i

End Sub
 
Katılım
24 Şubat 2009
Mesajlar
1,077
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
01-03-2023
Abim çok teşekkür ederim, eline sağlık dua ile kal Hayırlı Ramazanlar
 
Üst