Macro'da DüşeyAra Kullanımı
Aşağıda Excel sayfasından çağrılan Public prosedür ve User Form üzerindeki Combo Box alanda değişiklik olunca çalışan Private prosedür verilmiştir.
---------------------------------------------------------------------------------------------------------------------------
Formu Gösteren Public Prosedür
---------------------------------------------------------------------------------------------------------------------------
Sub FormuGoster() 'Excel sayfasından çağrılan Public prosedür.
'Forma isim veriliyor.
UserForm1.Caption = "Satış Girişi"
'SayfaAdi değişkenine değer veriliyor.
SayfaAdi = "Fiyatlar"
'A kolonu son satırı bulunarak A2'den başlayan bu son satırda biten aralık oluşturuluyor.
Aralik = "A2:A" & Sheets(SayfaAdi).Range("A" & Rows.Count).End(xlUp).Row
'Formdaki cmbUrunKodu alanının RowSource satır aralığı belirleniyor.
UserForm1.cmbUrunKodu.RowSource = SayfaAdi & "!" & Aralik
'Form görüntüleniyor.
UserForm1.Show
End Sub
---------------------------------------------------------------------------------------------------------------------------
Çağrılan Form
---------------------------------------------------------------------------------------------------------------------------
Combo Box Alan İşlemleri
---------------------------------------------------------------------------------------------------------------------------
Private Sub cmbUrunKodu_Change() 'cmbUrunKodu alanında değişiklik olduğunda çalışıyor.
Aranan = cmbUrunKodu.Text 'cmbUrunKodu alanındaki değer Aranan değişkenine atanıyor.
SayfaAdi = "Fiyatlar"
SonKolon = "D"
'DüşeyAra fonksiyonunun Aralik parametresi oluşturuluyor.
Aralik = "A2:" & SonKolon & Sheets(SayfaAdi).Range(SonKolon & Rows.Count).End(xlUp).Row
'Aşağıdaki eşitliğin sol taraflarında Excel DüşeyAra ile birebir parametreler kullanılıyor.
UrunAdi.Text = WorksheetFunction.VLookup(Aranan, Sheets(SayfaAdi).Range(Aralik), 2, 0)
UrunCinsi.Text = WorksheetFunction.VLookup(Aranan, Sheets(SayfaAdi).Range(Aralik), 3, 0)
FiyatiUSD.Value = WorksheetFunction.VLookup(Aranan, Sheets(SayfaAdi).Range(Aralik), 4, 0)
End Sub
---------------------------------------------------------------------------------------------------------------------------
Fiyatlar Sayfası
---------------------------------------------------------------------------------------------------------------------------
Public Prosedür Atanan Formu Göster Düğmesi
---------------------------------------------------------------------------------------------------------------------------
Form Görüntülenmesi
---------------------------------------------------------------------------------------------------------------------------
Combo Box Düğmesi Çalışınca