Excel VBA ile Dolu Hücreleri Sayma: CountA, CountIf ve Döngü Yöntemleri

Excel VBA ile Dolu Hücreleri Sayma: CountA, CountIf ve Döngü Yöntemleri
Excel VBA Dolu Hücreleri Sayma

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.

Sütun A (Ürün Kodu) B (Ürün Adı) C (Kategori) D (Fiyat)
1 Ürün Kodu Ürün Adı Kategori Fiyat (TL)
2 PR001 Laptop Bilgisayar 15.000
3 PR002 (boş) (boş) 450
4 PR003 Klavye Aksesuar 750
5 PR004 Monitör Bilgisayar 8.500
6 (boş) USB Bellek Aksesuar (boş)
7 PR006 Yazıcı Ofis 4.200
Örnek veri tablosu (A1:D7) - ⬜ Boş hücreler: B3, C3, A6, D6

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):

Sütun A B C D
1 Ürün Kodu Ürün Adı Kategori Fiyat
2 PR001 Laptop Bilgisayar 15.000
3 PR002 (boş) (boş) 450
4 PR003 Klavye Aksesuar 750
5 PR004 Monitör Bilgisayar 8.500
6 (boş) USB Bellek Aksesuar (boş)
7 PR006 Yazıcı Ofis 4.200
🟩 20 dolu hücre sayıldı · ⬜ Boş hücreler sayılmadı

📌 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):

Sütun A B C D
1 Ürün Kodu Ürün Adı Kategori Fiyat
2 PR001 Laptop Bilgisayar 🔵 15.000
3 PR002 (boş) (boş) 🔵 450
4 PR003 Klavye Aksesuar 🔵 750
5 PR004 Monitör Bilgisayar 🔵 8.500
6 (boş) USB Bellek Aksesuar (boş)
7 PR006 Yazıcı Ofis 🔵 4.200
🔵 5 pozitif fiyat sayıldı · ⬜ Boş veya 0 değerler sayılmadı

📌 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.

VBA - Geliştirici sekmesi
⚙️ Geliştirici sekmesini aktifleştirme

3. Modül Ekleyin

Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.

VBA - Modül ekleme
📝 Modül ekleme

2. Visual Basic Düzenleyici'yi Açın

Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.

Visual Basic Düzenleyici'yi Açma
📝 Visual Basic Düzenleyici'yi Açma

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

📋 Makro çalıştırma

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.

💡 İpucu: Makroları çalıştırmadan önce dosyanızı yedeklemeyi unutmayın. Ctrl+S ile kaydedin.
🤖 Akıllı Arama Asistanı
💬 Merhaba! Size nasıl yardımcı olabilirim?
Excel Asistanı
👋 Merhaba! Excel ile ilgili ne öğrenmek istersin? Örn: DÜŞEYARA nasıl kullanılır?
DÜŞEYARA Pivot Tablo Gantt Şeması