Bu dosya, D sütunundaki bir hücre seçildiğinde hücrenin üzerine bir TextBox yerleştirilmesini ve TextBox'a yazılan harflere göre başka bir sayfadaki listeden eşleşen kaydın getirilmesini gösteren makrolu bir örnektir. Fatura, cari kart ya da sipariş girişi gibi listeden seçim yapılan formlarda kullanılabilir.
Dosya makro içerir (.xlsm); açarken makroların etkinleştirilmesi gerekir.
Dosya makro içerir (.xlsm); açarken makroların etkinleştirilmesi gerekir.
Dosyanın içeriği
- exceldestek.com | exceldepo.com: A1:H10 aralığında giriş formu. 4. satırda TARİH, SIRA NO ve VERGİ NO başlıkları ile örnek vergi numaraları ve bir firma unvanı yer alır. TextBox bu sayfadaki D sütununda çalışır.
- Makroların aradığı VERİ adlı kaynak sayfa bu dosyada yer almaz. Makronun çalışması için aynı adla bir sayfa oluşturulur; A sütununa aranacak değerler, B sütununa karşılıkları yazılır ve başlık satırı 2. satırda olur.
Makrolar
Makrolar sayfa koduna (Sayfa1) yazılmıştır. Ayrıca çalıştırmak gerekmez; olaylar otomatik tetiklenir.- Worksheet_SelectionChange: D sütununda, 1. satırdan sonraki tek bir hücre seçildiğinde TextBox1 hücrenin konumuna taşınır, hücre değeri kutuya yazılır ve kutu etkinleştirilir.
- TextBox1_Change: Kutuya yazılan metin her değiştiğinde VERİ sayfasının A sütunu bu metinle başlayan kayıtlara göre filtrelenir. Görünen A:B değerleri, seçili satırın D sütunundan itibaren yapıştırılır ve filtre kapatılır. İşlem sırasında ekran güncellemesi ve olaylar geçici olarak durdurulur.
- TextBox1_KeyDown: Yön tuşu yukarı ve aşağı bir üst ya da alt hücreye geçer. Enter alttaki hücreye geçip kutuyu temizler. Backspace kutuyu boşaltır ve o satırdaki D:E hücrelerini siler.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- VERİ adlı sayfayı oluşturup A2 hücresine başlık, altına aranacak kayıtları girin.
- Form sayfasında D sütunundaki bir hücreyi seçin; TextBox hücrenin üzerinde belirir.
- Aranan metnin ilk harflerini yazın; eşleşen kayıt D ve E hücrelerine aktarılır.
- Enter ile sonraki satıra geçin, Backspace ile satırı temizleyin.