Bu dosya, Excel formüllerinin çalışma sayfası dışında, UserForm üzerindeki nesnelerle nasıl kullanılacağını iki örnekle gösterir. Metin kutusuna yazılan değer, sayfadaki bir tabloda VLOOKUP ile aranır ve sonuç aynı formdaki etikette görüntülenir.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Formlarda aynı mantık VBA tarafında WorksheetFunction.VLookup ile çalıştırılır.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- dates: A2:C13 aralığında tarih ve görüntülenme (Views) verileri bulunur. Aralık mytable adıyla tanımlıdır. F3 hücresinde örnek bir arama formülü yer alır.
- text vlookup: A2:B6 aralığında isim listesi ve karşılık gelen açıklamalar bulunur. Aralık textTable adıyla tanımlıdır.
- UserForm1: Tarih yazılan metin kutusu (tbDate) ve sonucun gösterildiği etiket (lblView) içerir.
- UserForm2: İsim yazılan metin kutusu (tbName) ve sonucun gösterildiği etiket (lblDesc) içerir.
Kullanılan formüller
dates sayfasındaki F3 hücresi, E3 hücresindeki değeri mytable aralığının ilk sütununda arar ve üçüncü sütundaki görüntülenme sayısını getirir:Formlarda aynı mantık VBA tarafında WorksheetFunction.VLookup ile çalıştırılır.
Makrolar
- datefrm: UserForm1 formunu açar.
- txtfrm: UserForm2 formunu açar.
- tbDate_Change: Metin kutusundaki tarih her değiştiğinde tarihi sayıya çevirir, mytable içinde arar ve bulunan görüntülenme sayısını binlik ayraçlı biçimde etikete yazar. Tarih bulunamaz veya geçersizse etiket boşaltılır.
- tbName_Change: Metin kutusundaki isim her değiştiğinde textTable içinde aranır ve ikinci sütundaki karşılık etikete yazılır. Eşleşme yoksa etiket boşaltılır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Alt+F8 ile datefrm veya txtfrm makrosunu çalıştırın.
- Tarih formunda dates sayfasındaki bir tarihi (ör. 20.12.2013) yazın; görüntülenme sayısı etikette belirir.
- İsim formunda text vlookup sayfasındaki bir ismi yazın; karşılığı etikette görünür.
- Kendi verinizle kullanmak için sayfalardaki tabloyu değiştirin ve mytable ile textTable adlarının kapsadığı aralıkları güncelleyin.