Excel VBA ile Dolu Hücreleri Sayma: CountA, CountIf ve Döngü Yöntemleri
1. Örnek Veri Tablosu
Aşağıdaki tabloda bazı hücreler dolu, bazıları boştur. Bu tablo üzerinde 3 farklı yöntemi test edeceğiz.
Tablo Bilgisi
Tabloda 4 adet boş hücre var: B3, C3, A6, D6. Dolu hücre sayısı: 20 (başlıklar dahil).
2. Yöntem 1: CountA ile Dolu Hücre Sayma
CountA fonksiyonu, boş olmayan tüm hücreleri sayar. En hızlı ve en yaygın kullanılan yöntemdir.
Sub CountAIleSay()
Dim sayi As Long
sayi = Application.WorksheetFunction.CountA(ActiveSheet.UsedRange)
MsgBox "Dolu hücre sayısı: " & sayi
End Sub
Ne Yapar?
- Tablodaki tüm dolu hücreleri sayar
- Boş hücreleri otomatik yok sayar
- Çok hızlı ve basittir
Makro Sonucu (🟩 Sayılan hücreler):
📌 Sonuç: CountA ile 20 dolu hücre tespit edildi. 🟩 Yeşil ile işaretlenenler sayıldı.
3. Yöntem 2: CountIf ile Koşullu Sayma
CountIf ile belirli bir koşula uyan hücreleri sayabilirsiniz. Bu örnekte Fiyat sütunundaki pozitif değerleri sayacağız.
Sub CountIfIleSay()
Dim sayi As Long
sayi = Application.WorksheetFunction.CountIf(Range("D:D"), ">0")
MsgBox "Fiyatı 0'dan büyük olanlar: " & sayi
End Sub
Ne Yapar?
- D sütunundaki pozitif sayıları sayar
- Boş veya sıfır değerleri yok sayar
- Koşullu sayma için idealdir
Diğer Koşullar
">0"→ Pozitif sayılar"<0"→ Negatif sayılar"=5"→ 5'e eşit olanlar"*"→ Metin içerenler
Makro Sonucu (🔵 Sayılan hücreler):
📌 Sonuç: CountIf ile 5 pozitif fiyat tespit edildi. 🔵 Mavi ile işaretlenenler sayıldı.
4. Geliştirici Sekmesini Aktifleştirme
1. Geliştirici Sekmesini Aktifleştirin
Excel'de VBA kodlarını yazabilmek için önce Geliştirici sekmesini aktif etmelisiniz. Detaylı bilgi için tıklayın.
3. Modül Ekleyin
Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.
2. Visual Basic Düzenleyici'yi Açın
Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.
4. Kodu Çalıştırın
Yazdığınız kodu çalıştırmak için F5 tuşuna basın veya Çalıştır butonuna tıklayın. VBA makro nedir? öğrenmek için tıklayın.
F5
▶️ Makroyu çalıştır
5. Sıkça Sorulan Sorular
01 Excel VBA ile dolu hücreler nasıl sayılır?
WorksheetFunction.CountA(aralik) ile dolu hücreleri sayabilirsiniz.
02 CountA ve CountIf arasındaki fark nedir?
CountA tüm dolu hücreleri sayar, CountIf koşullu sayar.
03 Seçili aralıktaki dolu hücreleri nasıl sayarım?
Set aralik = Application.InputBox("Aralık seçin:", Type:=8) ile seçim yapabilirsiniz.
04 Mac'te CountA çalışır mı?
Evet, Mac'te de aynı kodlar çalışır.
05 Hata alıyorum, ne yapmalıyım?
Aralık seçilmediyse kontrol ekleyin: If aralik Is Nothing Then Exit Sub
06 Boş hücreleri nasıl sayarım?
WorksheetFunction.CountBlank(aralik) ile boş hücreleri sayabilirsiniz.