Excel Makro (VBA) Dersleri - 4: FOR Döngüsü

kusha · 01 Ağustos 2026 · 5 dk okuma

For...Next döngüsü, bir işlemi belirli bir aralıkta tekrar tekrar yaptırmanızı sağlar — örneğin bir sütundaki tüm sayıları tek tek toplamak için idealdir.

Temel Yapı

Sub ToplamHesapla()
    Dim toplam As Double
    Dim i As Integer
    toplam = 0

    For i = 2 To 45
        toplam = toplam + Worksheets("Sayfa1").Range("D" & i).Value
    Next i

    Worksheets("Sayfa1").Range("G2").Value = toplam
End Sub
  • Dim toplam As Double: bir değişken tanımlar (ondalıklı sayı tutabilen tip).
  • "D" & i: birleştirme operatörü (&) ile "D" metnini i sayısıyla birleştirip her döngüde D2, D3, D4... şeklinde dinamik bir hücre referansı üretir.
  • Döngü her adımda i'yi bir artırarak Next i'ye kadar devam eder.

Ortalama Hesaplarken Dikkat: Sıfıra Bölme Hatası

Toplamı sayı adedine bölerken, sayı sayacını da bir döngüyle (yalnızca gerçekten sayısal olan hücreleri sayarak) hesaplamazsanız Division by Zero hatası alabilirsiniz:

Sub OrtalamaHesapla()
    Dim toplam As Double
    Dim sayi As Integer
    Dim i As Integer
    toplam = 0
    sayi = 0

    For i = 2 To 5
        If IsNumeric(Worksheets("Sayfa1").Range("D" & i).Value) Then
            toplam = toplam + Worksheets("Sayfa1").Range("D" & i).Value
            sayi = sayi + 1
        End If
    Next i

    If sayi > 0 Then
        Worksheets("Sayfa1").Range("G3").Value = toplam / sayi
    End If
End Sub

IsNumeric(...), bir hücrenin gerçekten sayısal bir değer içerip içermediğini kontrol eder — boş veya metin içeren hücreleri döngü dışında bırakarak hem yanlış sonuçları hem de sıfıra bölme hatasını önler.

Sırada Ne Var?

Sırada, AutoFilter ve olay tabanlı kodlamayla çalışan dinamik bir arama konsolu yapacağız.