Excel VBA kullanarak gelir-gider hesaplama programı oluşturabiliriz. Bu program, kullanıcıların gelir ve giderlerini ekleyebileceği, görüntüleyebileceği ve toplam gelir, toplam gider ve net kazancı hesaplayabileceği bir sistem içerecek.
1. Adım: Kullanıcı Arayüzü Oluşturma
Excel'de Geliştirici sekmesinden VBA penceresini açın ve yeni bir UserForm oluşturun. Formunuza şu kontrolleri ekleyin:
Label1: "Açıklama"
TextBox1: Kullanıcıdan açıklama almak için
Label2: "Tutar"
TextBox2: Kullanıcıdan tutar almak için
Label3: "Tür"
ComboBox1: "Gelir" ve "Gider" seçeneklerini içeren işlem türü için
CommandButton1: "Kaydet" butonu
2. Adım: Kod Ekleme Formunuza çift tıklayarak kod penceresini açın ve aşağıdaki kodları ekleyin:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("GelirGider") 'Verilerin kaydedileceği sayfa adı
' Yeni veri eklemeden önce mevcut verileri kontrol edin
If ws.Cells(1, 1).Value = "" Then
' Başlık satırı ekleyin
ws.Cells(1, 1).Value = "Açıklama"
ws.Cells(1, 2).Value = "Tutar"
ws.Cells(1, 3).Value = "Tür"
ws.Cells(1, 4).Value = "Tarih"
End If
Dim emptyRow As Long
emptyRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 'Boş satırın bulunması
'Formdan verileri alıp tabloya ekleme
ws.Cells(emptyRow, 1).Value = TextBox1.Value 'Açıklama
ws.Cells(emptyRow, 2).Value = TextBox2.Value 'Tutar
ws.Cells(emptyRow, 3).Value = ComboBox1.Value 'Tür
ws.Cells(emptyRow, 4).Value = Now 'Tarih
'Form alanlarını temizleme
TextBox1.Value = ""
TextBox2.Value = ""
ComboBox1.Value = ""
' Toplam Gelir ve Gider Hesaplama
Call ToplamHesapla
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem "Gelir"
ComboBox1.AddItem "Gider"
End Sub
Sub ToplamHesapla()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("GelirGider")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Dim toplamGelir As Double
Dim toplamGider As Double
Dim netKazanc As Double
toplamGelir = Application.WorksheetFunction.SumIf(ws.Range("C2:C" & lastRow), "Gelir", ws.Range("B2:B" & lastRow))
toplamGider = Application.WorksheetFunction.SumIf(ws.Range("C2:C" & lastRow), "Gider", ws.Range("B2:B" & lastRow))
netKazanc = toplamGelir - toplamGider
ws.Cells(1, 6).Value = "Toplam Gelir"
ws.Cells(2, 6).Value = toplamGelir
ws.Cells(1, 7).Value = "Toplam Gider"
ws.Cells(2, 7).Value = toplamGider
ws.Cells(1, 8).Value = "Net Kazanç"
ws.Cells(2, 8).Value = netKazanc
End Sub
3. Adım: Tablo Oluşturma
Excel'de GelirGider adında bir sayfa oluşturun ve şu başlıkları ekleyin:
A1: Açıklama
B1: Tutar
C1: Tür
D1: Tarih
4. Adım: Makroyu Otomatik Başlatma
Excel dosyasını her açtığınızda UserForm'un otomatik olarak açılmasını sağlamak için ThisWorkbook nesnesine aşağıdaki kodu ekleyin:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
