Aşağıda, her personelin üç aylık bir süre boyunca toplam satışını hesaplayan Excel VBA’daki bir programa bakacağız.
Durum:
Diğer iki sayfa aynı kuruluma sahiptir, ancak farklı gün ve personel kombinasyonları ve farklı ciro tutarları vardır. Excel’de her çalışanın toplam satışını hesaplamanın birkaç yolu vardır, ancak bunun Excel VBA’da çok kolay yapılabileceğini göreceğiz.
Çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırlarını ekleyin:
- Önce üç değişken ve bir Çalışma Sayfası nesnesi tanımlıyoruz. calisan1 olarak adlandırdığımız String türünde bir değişken, ciro1 olarak adlandırdığımız Tamsayı türünde bir değişken, sayfa1 olarak adlandırdığımız bir Çalışma Sayfası nesnesi ve Tamsayı türünde bir değişkeni i olarak adlandırıyoruz.
Dim calisan1 As String, ciro1 As Integer, sayfa1 As Worksheet, i As Integer
Code language: VB.NET (vbnet)
- İki değişkeni başlatıyoruz. ciro1 değişkenini 0 değeri ile başlatıyoruz. Kullanıcıdan çalışan adını almak için InputBox fonksiyonunu kullanıyoruz.
ciro1 = 0
calisan1 = InputBox("Çalışan adını girin (büyük/küçük harfe duyarlı)")
Code language: VB.NET (vbnet)
- Kullanıcı bir çalışan adı girdikten sonra bu çalışanın toplam satışını hesaplamak istiyoruz. Çalışma kitabı üç sayfadan oluşmaktadır. Gelecekte sayfalar eklenirse hala kullanılabilecek bir program istiyoruz. Bu nedenle aşağıdaki kod satırını kullanıyoruz:
For Each sayfa1 In Worksheets
Code language: VB.NET (vbnet)
- Başka bir For Next döngüsü başlatıyoruz.
For i = 2 To 11
Code language: VB.NET (vbnet)
- Girilen çalışan adı B sütunundaki çalışan adıyla eşleşirse, Excel VBA satış numarasını değişken toplamına ekler. Aşağıdaki kod satırlarını ekleyin:
If sayfa1.Cells(i, 2).Value = calisan1 Then
ciro1 = ciro1 + sayfa1.Cells(i, 3).Value
End If
Code language: VB.NET (vbnet)
- Her iki döngüyü de kapatmayı unutmayın.
Next i
Next sayfa1
Code language: VB.NET (vbnet)
- Son olarak çalışanın toplam satışlarını MsgBox kullanarak görüntülüyoruz.
MsgBox calisan1 & " Toplam Cirosu: " & ciro1
Code language: VB.NET (vbnet)
- Programı test edin.
Murat için sonuç:
Tüm kodlar:
Private Sub CommandButton1_Click()
Dim calisan1 As String, ciro1 As Integer, sayfa1 As Worksheet, i As Integer
ciro1 = 0
calisan1 = InputBox("Çalışan adını girin (büyük/küçük harfe duyarlı)")
For Each sayfa1 In Worksheets
For i = 2 To 13
If sayfa1.Cells(i, 2).Value = calisan1 Then
ciro1 = ciro1 + sayfa1.Cells(i, 3).Value
End If
Next i
Next sayfa1
MsgBox calisan1 & " Toplam Cirosu: " & ciro1
End Sub
Code language: VB.NET (vbnet)