Bu dosya, çalışanlara ait sigorta ve konaklama giderlerinin atandıkları projelere göre toplanmasını sağlayan PROJE_MALIYET adlı kullanıcı tanımlı fonksiyonu örneklendirir. Sonuç tek bir formülle üretilir; tablo proje sayısına göre taşma davranışıyla alt alta ve yan yana yayılır, en alta kalem bazlı genel toplam satırı eklenir. Dosya, Proje Maliyetlerini Hesaplama dosyasındaki işlemin VBA ile uygulanmış sürümüdür.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Birinci bağımsız değişken başlık satırı dahil maliyet tablosunu, ikincisi proje atamalarını verir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sayfa1: B2:F8 aralığında çalışan adı, Sigorta ve Konaklama tutarları bulunur. H3:L8 aralığında her çalışanın görev aldığı projeler (Proje 2, Proje 3, Proje 5, Proje 6 gibi) yer alır; bir çalışana birden fazla proje yazılabilir. N2 hücresinden itibaren fonksiyonun ürettiği özet tablo görünür: proje adı, proje bazında Sigorta, Konaklama ve alt satırda Toplam.
- Anasayfa: Dosyanın giriş sayfasıdır.
- @: Site içeriklerine ait bağlantı başlıklarının yer aldığı sayfadır.
Kullanılan formüller
Sayfa1 sayfasındaki özet tablo N2 hücresindeki tek formülle oluşur:=PROJE_MALIYET(C2:F8;H3:L8)
Makrolar
Module1 içinde tek fonksiyon bulunur: PROJE_MALIYET. Fonksiyon şu adımlarla çalışır:- Her çalışanın satırındaki projeleri okur ve Scripting.Dictionary ile benzersiz proje listesini oluşturur.
- Çalışanın her maliyet kalemini, atandığı projenin satırına ekler; ayrıca proje için Toplam sütununu hesaplar.
- En alta her kalemin Toplam satırını Application.Sum ile ekler.
- Proje adlarını alfabetik sıraya dizer ve sonucu dizi olarak döndürür.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sayfa1 sayfasında çalışan, sigorta ve konaklama tutarlarını ilgili sütunlara girin.
- Her çalışanın satırına görev aldığı projeleri yazın.
- Özet tablonun başlayacağı hücreye formülü girin; aralıkları veri satırı sayısına göre ayarlayın.
- Proje bazlı tutarlar ve genel toplam otomatik hesaplanır.