Macro'da For-Next ve If Kullanarak Koşullu Toplam
Bir For-Next döngüsü içinde If kullanarak, bir kolonda koşula uyanlara karşılık gelen satırlardan diğer kolondaki değerleri bir değişken üzerine toplamak üzere bir istek olduğunu varsayalım.
Bu amaçla hazırladığım programı, aşağıda gerekli açıklamalar ile birlikte bulabilirsiniz.
-------------------------------------------------------------------------------------------------------------------------
Sub KosulluToplam()
Olcut = Range("D13") 'Range("D13") hücresindeki bilgiyi Olcut değişkenine ata.
Min = 2
Max = Cells(Rows.Count, "A").End(xlUp).Row 'A kolonunun son satırını ilgili fonksiyonu kullanarak buldur.
Toplam = 0 'Toplam değişkeni, başlangıç değeri olarak sıfırlanıyor.
For i = Min To Max 'i indis değerini minimum değerden maksimum değere kadar artırarak Next satırına kadarki işlemleri yap.
If Range("A" & i) = Olcut Then 'Range("A" & i) hücresindeki bilgi Olcut bilgisine Eşit ise
Toplam = Toplam + Range("B" & i) 'Koşul sağlandığında Toplam değişkeninin değerine Range("B" & i) hücresindeki değeri topla.
End If 'Koşul bloğu sonu
Next i
Range("F13") = Toplam 'Toplam değişkenindeki değeri Range("F13") hücresine ata.
End Sub
---------------------------------------------------------------------------------------------------------------------
Excel'e bir dikdörtgen şekil ekliyoruz. Bu şekle Makro Ata seçeneğiyle, yukarıdaki yazılan prosedürü seçiyoruz. Şekil bir düğmeye dönüşüyor.