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:
1. Ö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
2. İ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ı)")
3. 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
4. Başka bir For Next döngüsü başlatıyoruz.
For i = 2 To 11
5. 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
6. Her iki döngüyü de kapatmayı unutmayın.
Next i Next sayfa1
7. Son olarak çalışanın toplam satışlarını MsgBox kullanarak görüntülüyoruz.
MsgBox calisan1 & " Toplam Cirosu: " & ciro1
8. 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