Macro'yla Borç Alacak Girişi ve Mizanı

Excel Macro kullanarak bir Borç Alacak Girişi ekranı oluşturacağız. 
Bu ekranı bir menüden çağıracağız. 
Bu menü, Excel sayfasındaki dikdörtgen şekle Makro Ata seçeneğiyle atanan prosedürle görüntüleyeceğiz. 
Borç Alacak Girişi ekranından Excel satırlarına yüklenen bilgilerden her bir Ad Soyad'a ilişkin borç ve alacaklar ayrı ayrı toplanacak. Bu borç alacak dengesinden bir Mizan oluşturacağız.  

Bu işlemler ile ilgili ekran görüntüleri ve ilgili Macro program kodları aşağıda verilmiştir. Bu kodları kopyalayıp değişiklik yaparak kullanabilirsiniz. 

Aşağıda önce Macro program kodlarını ve sonra ekran görüntülerini bulabilirsiniz. 

-------------------------------------------------------------------------------------------------------------------------
Excel'deki Dikdörtgen Şekle 'Makro Ata' Seçeneğiyle Atanan Public Prosedür

Public Sub EkraniGoster()
 frmAnaMenu.Show
End Sub

-------------------------------------------------------------------------------------------------------------------------
frmAnaMenu Ekranının Private Prosedürleri


Private Sub btnBorcAlacakGirisi_Click()
frmAnaMenu.Hide
 
Range("D:D").NumberFormat = "General"
Range("E:E").NumberFormat = "General"

LastRow = Cells(Rows.Count, "B").End(xlUp).Row     'B kolonunun satır sayısı bulunmaktadır. 

frmBorcAlacakGirisi.SatirNo = LastRow     'Ekrandaki Satır No alanına, bu satır sayısı atanmaktadır. 

frmBorcAlacakGirisi.Show
End Sub


Private Sub btnCikis_Click()
 c = MsgBox("ÇIKAYIM MI?", vbQuestion + vbYesNo, "DİKKAT.")

 If c = 6 Then
    ThisWorkbook.Save
    ThisWorkbook.Close
 End If
End Sub


Private Sub btnMizanOlustur_Click()
 Range("K:O").ClearContents        'K ve O kolonları arası temizlenmektedir. 
 LastRow1 = Cells(Rows.Count, "B").End(xlUp).Row   'B kolonundaki satır sayısı bulunmaktadır. 

 Range("B1:B" & LastRow1).Copy Range("K1:K" & LastRow1)      'B kolonundan K kolonuna değerler kopyalanmaktadır. 
 Range("K1:K" & LastRow1).RemoveDuplicates 1, xlNo     'Tekrarlı satırlar temizlenmektedir. 
 
 LastRow2 = Cells(Rows.Count, "K").End(xlUp).Row    'K kolonundaki satır sayısı bulunmaktadır. 
 
 Range("K1:K" & LastRow2).Sort key1:=Range("K1:K" & LastRow2), order1:=xlAscending, Header:=xlYes      'K kolonunda ilgili satırlar Artan şekilde ve Başlığı var olarak sıralanmaktadır. 
 
 Range("L1") = "Borç Toplamı"
 Range("M1") = "Alacak Toplamı"
 Range("N1") = "Bakiye"
 Range("O1") = "Borç/Alacak"
 Range("K1:O1").Select
 With Selection
  .Font.Bold = True
  .ColumnWidth = 15
 End With
 Range("A1").Select
 
 For r = 2 To LastRow2   'K kolonundaki 2. satırdan son satıra kadar döngü çalıştırılmaktadır. 
  Cells(r, 12) = WorksheetFunction.SumIf(Range("B1:B" & LastRow1), Cells(r, 11), Range("D1:D" & LastRow1))      'ETopla fonksiyonu kullanılarak B kolonunda Cells(r, 11) hücresindeki değer araştırılıp D kolonunda toplama yapılmaktadır.  
  Cells(r, 13) = WorksheetFunction.SumIf(Range("B1:B" & LastRow1), Cells(r, 11), Range("E1:E" & LastRow1))      'ETopla fonksiyonu kullanılarak B kolonunda Cells(r, 11) hücresindeki değer araştırılıp E kolonunda toplama yapılmaktadır.  
  
  If Cells(r, 12) > Cells(r, 13) Then         'Borç alacaktan büyükse
       Cells(r, 14) = Cells(r, 12) - Cells(r, 13)      'Borç toplamından alacak toplamı çıkarılmaktadır ve Bakiye hesaplanmaktadır. 
       Cells(r, 15) = "Borçlu"      'B/A = Borçlu atanmaktadır.
  ElseIf Cells(r, 12) < Cells(r, 13) Then      'Alacak borçtan büyükse 
       Cells(r, 14) = Cells(r, 13) - Cells(r, 12)       'Alacak toplamından borç toplamı çıkarılmaktadır ve Bakiye hesaplanmaktadır. 
       Cells(r, 15) = "Alacaklı"    'B/A = Alacaklı atanmaktadır.
      Else    'Hiçbiri değilse 
       Cells(r, 14) = 0       'Bakiye = 0 atanmaktadır. 
       Cells(r, 15) = ""      'B/A = "" atanmaktadır. 
  End If
 Next r
End Sub


--------------------------------------------------------------------------------------------------------------------

frmBorcAlacakGirisi Ekranının Private Prosedürleri

Private Sub btnKaydet_Click()
 If frmBorcAlacakGirisi.SatirNo = 0 Then frmBorcAlacakGirisi.SatirNo = 1
 
 frmBorcAlacakGirisi.SatirNo = frmBorcAlacakGirisi.SatirNo + 1
 r = frmBorcAlacakGirisi.SatirNo
 
 If frmBorcAlacakGirisi.Borc = "" Then frmBorcAlacakGirisi.Borc = 0
 If frmBorcAlacakGirisi.Alacak = "" Then frmBorcAlacakGirisi.Alacak = 0
 
 'Formdaki alanlarda bulunan değerler ilgili hücrelere atanmaktadır. 
 Cells(r, 1) = frmBorcAlacakGirisi.Tarih
 Cells(r, 2) = frmBorcAlacakGirisi.AdiSoyadi
 Cells(r, 3) = frmBorcAlacakGirisi.Aciklama
 Cells(r, 4) = Format(frmBorcAlacakGirisi.Borc, "0")
 Cells(r, 5) = Format(frmBorcAlacakGirisi.Alacak, "0")
End Sub


Private Sub btnKapat_click()
 frmBorcAlacakGirisi.Hide
 frmAnaMenu.Show
End Sub

-------------------------------------------------------------------------------------------------------------------------

Menü Düğmesi





















Ana Menü Ekranı






















Borç Alacak Girişi
 





















Borç Alacak Girişi - Girilen Bilgiler
 





















Menüdeki Mizan Oluştur Düğmesine Basılması





















Menüyü Göster Kodlaması 





















Menü Formu Oluşturulması





















frmAnaMenu Düğmeleri Kodlaması





















frmBorcAlacakGirisi Formu Oluşturulması





















frmBorcAlacakGirisi Düğmeleri Kodlaması





















Menüdeki Çıkış Düğmesine Basıldığında




















Formlardaki düğmeleri oluştururken Toolbox üzerinden Command Button isimli düğmeyi tıklıyoruz. 
Formda bir düğme oluşmaktadır. 
Oluşan düğmenin Properties çerçevesindeki Name özelliğinde, butona programda kullanılacak bir isim veriyoruz. 
Caption özelliğine düğmenin ekranda görünecek ismini yazıyoruz. 
Oluşan düğmeyi tıkladığınızda, formun kod kısmına, "<DüğmeAdı>_Click()" şeklinde ismi olan, Private özellikli boş prosedür eklenir. 
Bu boş prosedür bloklarının içine ilgili kodlar yazılır. 

Formlardaki bilgi giriş alanlarını oluşturmak için, Toolbox üzerindeki Text Box isimli düğmeyi tıklıyoruz. 
Oluşan metin kutusuna Properties çerçevesindeki Name özelliğinde, metin kutusuna programda kullanılacak bir isim veriyoruz. 
Metin kutusunu, bilginin girilebileceği şekilde boyutlandırıyoruz. 

Metin kutularının sol tarafına etiket eklemek için, Toolbox üzerindeki Label isimli düğmeyi tıklıyoruz. 
Oluşan etikete Properties çerçevesindeki Name özelliğinde, etikete programda kullanılacak bir isim veriyoruz. 
Caption özelliğine etiketin metin kutusuna ilişkin ekranda görünecek ismini yazıyoruz. 

Bu blogdaki popüler yayınlar

Power BI'da Yeni Sütun Eklemek

Power BI Kullanımına Giriş

Power BI Üzerinde Fonksiyon Oluşturma ve Kullanma

Kümülatif Toplam

Ağırlıklı Ortalama Hesabı

SQL'de Group By Yaparak Rapor Oluşturmak

SQL'de Birden Fazla Tablodan Listeleme Yapmak

ETarihli Fonksiyonu

Bir Ürünün En Son Tarihli Fiyatının Bulunması