Bu dosya, Excel sayfasındaki verinin ADO (ActiveX Data Objects) bağlantısıyla SQL sorgusu kullanılarak sıralanmasını gösteren örnek bir makro çalışmasıdır. Sorgu sonucu, sıra numarasıyla birlikte sayfaya yazılır.
Dosyanın içeriği
- Sayfa1: A5:F8 aralığında örnek veri bulunur. A sütununda harf, D sütununda sıra, F sütununda sayı1 başlığı yer alır. İlk satırlarda a, b, c harfleri 10, 30 ve 60 değerleriyle girilmiştir; alt satırlarda ek harf kayıtları vardır.
- Dosyada hücre formülü bulunmaz; hesaplama makro içindeki SQL sorgusuyla yapılır.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Module1 içinde tek bir prosedür vardır: dee.- Önce D2:F50 aralığındaki eski sonuçlar temizlenir.
- ADODB.Connection ile çalışma kitabının kendisine, Microsoft ACE OLEDB 12.0 sağlayıcısı üzerinden ve ilk satır başlık kabul edilerek bağlanılır.
- SQL sorgusu, Sayfa1 içinde harf değeri "a" olan kayıtları seçer. İç içe geçmiş bir alt sorgu, her kaydın sayı değerinden küçük veya eşit kayıtları sayarak Rank (sıra) değerini üretir. Sonuçlar sayıya göre sıralanır.
- Sorgu sonucu CopyFromRecordset ile D2 hücresinden başlayarak sayfaya aktarılır; ardından bağlantı ve kayıt kümesi kapatılır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sayfa1 üzerindeki harf ve sayı verilerini kendi verinize göre düzenleyin; başlıkların sorgudaki adlarla uyumlu olmasına dikkat edin.
- Alt+F8 ile dee makrosunu çalıştırın.
- Sıralı sonuç D2 hücresinden itibaren listelenir. Farklı bir harf için sorgudaki harf='a' koşulunu VBA düzenleyicisinde değiştirin.
- Bilgisayarda ACE OLEDB sağlayıcısı kurulu olmalıdır; Office'in yüklü olduğu sistemlerde genellikle hazır gelir.