Excel VBA ile Boş Hücreleri Sayma

Excel VBA ile Boş Hücreleri Sayma: 2 Pratik Yöntem
Boş Hücreleri Sayma

1. Örnek Veri Tablosu

Aşağıdaki tabloda bazı hücreler boş. Bu tablo üzerinde 2 farklı yöntemi test edeceğiz.

# A (Ürün Kodu) B (Ürün Adı) C (Fiyat)
1 Ürün Kodu Ürün Adı Fiyat
2 PR001 Laptop 15.000
3 PR002 (boş) 450
4 PR003 Klavye 750
5 PR004 Monitör 8.500
6 (boş) USB Bellek (boş)
7 PR006 Yazıcı 4.200
Örnek tablo (A1:C7) - Boş hücreler: B3, A6, C6

Tablo Bilgisi

Tabloda 3 adet boş hücre var: B3, A6, C6. Bu boş hücreleri sayacağız.

2. Yöntem 1: CountBlank ile Boş Hücre Sayma

CountBlank fonksiyonu, bir aralıktaki boş hücreleri sayar. En hızlı ve en basit yöntemdir.

Sub CountBlankIleSay()
    Dim sonuc As Long
    sonuc = WorksheetFunction.CountBlank(Range("A2:C7"))
    MsgBox "Boş hücre sayısı: " & sonuc
End Sub

Kod Açıklaması

  • Dim sonuc As Long → Sayı değişkeni
  • CountBlank(Range("A2:C7")) → A2:C7 aralığındaki boş hücreleri sayar
  • MsgBox → Sonucu gösterir

Tablo: 🟨 Sayılan boş hücreler:

# A B C
2 PR001 Laptop 15.000
3 PR002 🟨 (boş) 450
4 PR003 Klavye 750
5 PR004 Monitör 8.500
6 🟨 (boş) USB Bellek 🟨 (boş)
7 PR006 Yazıcı 4.200
🟨 3 adet boş hücre sayıldı (B3, A6, C6)

📌 Sonuç: CountBlank ile tabloda 3 adet boş hücre bulundu.

3. Yöntem 2: For Each Döngüsü ile Boş Hücre Sayma

For Each döngüsü ile her hücreyi tek tek kontrol ederek boş olanları sayabilirsiniz. Daha esnek bir yöntemdir.

Sub DonguIleBosSay()
    Dim hucre As Range
    Dim sayac As Integer
    
    sayac = 0
    For Each hucre In Range("A2:C7")
        If IsEmpty(hucre) Then sayac = sayac + 1
    Next hucre
    
    MsgBox "Boş hücre sayısı: " & sayac
End Sub

Kod Açıklaması

  • Dim hucre As Range → Hücre değişkeni
  • For Each hucre In Range("A2:C7") → Her hücreyi dolaşır
  • If IsEmpty(hucre) Then → Hücre boş mu kontrol eder
  • sayac = sayac + 1 → Boşsa sayacı artırır

Tablo: 🔵 Sayılan boş hücreler:

# A B C
2 PR001 Laptop 15.000
3 PR002 🔵 (boş) 450
4 PR003 Klavye 750
5 PR004 Monitör 8.500
6 🔵 (boş) USB Bellek 🔵 (boş)
7 PR006 Yazıcı 4.200
🔵 3 adet boş hücre sayıldı (B3, A6, C6)

📌 Sonuç: For Each döngüsü ile tabloda 3 adet boş hücre bulundu.

4. VBA Makroları için Ön Hazırlık

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 VBA'da boş hücreler nasıl sayılır?

WorksheetFunction.CountBlank(aralik) ile boş hücreleri sayabilirsiniz.

02 CountBlank ve CountA arasındaki fark nedir?

CountBlank boş, CountA dolu hücreleri sayar.

03 Boş hücre sayarken hata alıyorum, ne yapmalıyım?

Aralık adını kontrol edin, sayfa korumasını kaldırın ve makroları etkinleştirin.

04 Mac'te VBA boş hücre sayma çalışır mı?

Evet, Mac'te de aynı kodlar çalışır.

05 Sonucu hücreye nasıl yazarım?

Range("D1").Value = sayac ile yazabilirsiniz.

06 Seçili aralıktaki boş hücreleri nasıl sayarım?

Set aralik = Selection veya Application.InputBox ile seçim yapabilirsiniz.

💡 İ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ı