Bu dosya, Excel'de hücreye girilen verilerin Veri Doğrulama (Data Validation) kuralları ile nasıl sınırlandırılacağını örnek üzerinde gösterir. Açılır liste hücreleri hazır olarak gelir; liste kaynakları ayrı bir sayfada tutulur ve hücrelere çift tıklandığında makro ile bir seçim kutusu açılır.
Dosyanın içeriği
- doğrulama: B1:F12 aralığında üç başlık bulunur: Haftanın Günleri (B sütunu), Tarih (D sütunu) ve Şehir (F sütunu). Sayfada 5 adet veri doğrulama kuralı tanımlıdır; örnek değerler arasında Pazar, Çarşamba, 26.05.2019, 28.05.2019, İzmir ve İstanbul yer alır.
- veriler: Liste kaynaklarını içerir. A sütununda gün adları, C sütununda ay adları, E sütununda tarihler, I sütununda Marmara illeri (İstanbul, Edirne), K sütununda Ege illeri (Aydın) bulunur.
- Tanımlı adlar: DayList, MonthList, DateList, RegionList, Marmara ve Ege. Doğrulama listeleri bu adlara bağlanır; Marmara ve Ege adları bölgeye göre değişen bağımlı liste yapısına uygundur.
Kullanılan formüller
- TODAY: veriler sayfasındaki E1 hücresi bugünün tarihini verir.
- E2 hücresi, bir sonraki günü hesaplar; alt satırlarda da aynı mantıkla tarih listesi oluşur:
=E1+1
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Makrolar sayfa koduna yazılmıştır ve ayrıca çalıştırılmaz; olaylarla otomatik devreye girer. Kod dosya silme veya dışarıya bağlantı gibi işlemler yapmaz.- Worksheet_BeforeDoubleClick: Liste tipinde doğrulama bulunan bir hücreye çift tıklandığında hücrenin üzerine bir birleşik kutu (TempCombo) yerleştirir, liste kaynağını doğrulama formülünden okur ve kutuyu açar. Seçim hücreye yazılır. Doğrulama formülünde INDIRECT varsa bağımlı listenin başvurusu çözülür. Kod, "ValidationLists" adlı bir sayfa arar; dosyada bu adda sayfa bulunmadığından makroyu kendi dosyanıza taşırken bu sayfanın eklenmesi gerekir.
- TempCombo_KeyDown: Kutuda Enter tuşu bir alt hücreye, Tab tuşu sağdaki hücreye geçirir; metin olarak girilen sayı mümkünse sayıya çevrilir.
- TempCombo_LostFocus: Kutudan çıkıldığında kutuyu gizler ve bağlantılarını temizler.
- Kod Türkçe Excel'de çalışacaksa, kod içindeki INDIRECT işlev adı yerel karşılığıyla değiştirilmelidir.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- doğrulama sayfasında Haftanın Günleri, Tarih veya Şehir sütunundaki bir hücreyi seçip açılır oku kullanın.
- Aynı hücreye çift tıklayarak makro ile açılan kutudan seçim yapın; Enter veya Tab ile sonraki hücreye geçin.
- Liste içeriğini değiştirmek için veriler sayfasındaki değerleri düzenleyin.
- Kuralları incelemek için hücreyi seçip Veri sekmesinden Veri Doğrulama penceresini açın.