Türkçe Excel Destek ve Bilgi Paylaşım Platformu     

Oturum Aç |  Kayıt Ol

Yeni konu gönder Konuya cevap yaz  [ 1 ileti ] 

29 Kas 2009, 02:21

Çevrimdışı
 Kullanıcı Tanımlı Fonksiyonlar Hazırlamak
Site Admin
Kullanıcı avatarı
Kayıt: 18 Ağu 2009, 10:48
İleti: 607


Gerçektende Excel ihtiyaç duyacağınız bir çok işlemi gerçekleştirmenize imkan veren bir çok yerleşik fonksiyona sahiptir. Mesela hazırladığınız bir Ücret tablosunda Gelir Vergisini çok rahatlıkla

= YUVARLA(Vergi Matrahının olduğu Hücre Adresi X Vergi Oranı) Formülü ile hesaplatabilirsiniz.

Ancak bundan daha güzel bir çözüm bulmak daha da güzel olmazmı. Mesela Öyle bir Fonksiyon olsaki yeni yılda bunun için hazırlanmış bir excel sayfasına gelir vergisi tarifelerini girdiğimiz otomatik olarak toplam matrahıda kontrol ederek kesilecek gelir vergisini hesaplasa. Sesinizi duyar gibiyim. Eminim hepiniz daha iyi olur diyorsunuzdur. Birçoğunuzun başına gelmiştir belkide, yeni yılda formüllerde değişiklik yapmayı unuttuğunuz için hatalı hesaplamalara neden olduğunuz olmuştur. Şimdi sözü fazla uzatmadan kullanıcı tanımlı Fonksiyonumuzu hazırlayalım.

1. Önce boş bir Excel dosyası Açalım.
2. Dosyamızı Farklı Kaydet İle masa üztüne Gelir Vergisi.xls Olarak kaydedelim. İsterseniz siz başka bir isimde verebilirsiniz.
3. Gelir Versi.Xls dosyasında bize iki sayfalazım olacak. Sayfa1'in ismini Tarife Olarak, Sayfa2'nin isminide Hesap Olarak Değiştirelim. Sayfa İsmi Değiştirmeyi Nasıl Yapacağınızı burada anlatmaya gerek yok sanırım. Dosyamızın aşağıdaki gibi biçimlendirelim.


4. Hesap isimli sayfamızda C3 hücresine aşağıdaki formülü yazın.
Kod: Tümünü seç
=GV(A3+B3)-GV(A3)

5. Alt+F11 Tuşuna basarak Microsoft Visual Basic Editörünü açalım.
6. İnset Menüsünden Module konutuna tıklayarak projemize bir modül ekleyelim.
7. Eklediğimiz modülü seçip buraya aşağıdaki kodu ekleyelim.
Kod: Tümünü seç
Function GV(Matrah As Double)
    If Matrah >= 0 And Matrah < Sheets("Tarife").Range("B2").Value# + 1# _
Then GV = Sheets("Tarife").Range("C2").Value# * Matrah
    If Matrah > Sheets("Tarife").Range("B2").Value# And Matrah < Sheets("Tarife").Range("B3").Value# + 1# _
Then GV = Sheets("Tarife").Range("C3").Value# * (Matrah - Sheets("Tarife").Range("B2").Value#) + _
(Sheets("Tarife").Range("B2").Value# * Sheets("Tarife").Range("C2").Value#)
    If Matrah > Sheets("Tarife").Range("B3").Value# And Matrah < Sheets("Tarife").Range("B4").Value# + 1# _
Then GV = Sheets("Tarife").Range("C4").Value# * (Matrah - Sheets("Tarife").Range("B3").Value#) + _
((Sheets("Tarife").Range("B2").Value# * Sheets("Tarife").Range("C2").Value#) + _
((Sheets("Tarife").Range("B3").Value# - Sheets("Tarife").Range("B2").Value#) * _
Sheets("Tarife").Range("C3").Value#))
    If Matrah > Sheets("Tarife").Range("B4").Value# _
Then GV = Sheets("Tarife").Range("C5").Value# * (Matrah - Sheets("Tarife").Range("B4").Value#) + _
(((Sheets("Tarife").Range("B2").Value# * Sheets("Tarife").Range("C2").Value#) + _
((Sheets("Tarife").Range("B3").Value# - Sheets("Tarife").Range("B2").Value#) * _
Sheets("Tarife").Range("C3").Value#)) + _
((Sheets("Tarife").Range("B4").Value# - Sheets("Tarife").Range("B3").Value#) * _
Sheets("Tarife").Range("C4").Value#))
End Function

Hepsi bu kadar. Şimdi excel sayfasına dönerek Hesap isimli sayfada Toplam matrahı ve Aylık Matrahı girerek Gelir Vergisinin doğru bir şekilde hesaplandığını görelim. Gerçektende Kullanıcı tanımlı bu fonksiyonu çalıştığınız excel sayfasına ekleyerek (Mesela Bir Maaş Bordrosu çalışmanıza) hatasız Gelir Vergisi hesaplatması yaptırabilirsiniz. İsteyenler dosyayı aşağıdan indirebilirler.

Gelir Vergisi.xls

_________________
İnsanlar sadece söylediklerinden değil, söylemesi gerekirken söylemediklerinden de sorumludur.
Bir insanın zekâsı, vereceği karşılıklarla değil, soracağı sorulardan anlaşılır.

Üye ol yüklediğin dosyalar indirildikçe para kazan.


Başa Dön Sayfa başı
 Profile bak  
 
Önceki iletileri göster:  Sıralama  
Yeni konu gönder Konuya cevap yaz  [ 1 ileti ] 

Tüm zamanlar UTC + 2 saat [ DST ]


Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir


Bu forumda yeni konular açamazsınız
Bu forumda konulara cevap yazamazsınız
Bu forumda kendi iletilerinizi değiştiremezsiniz
Bu forumda kendi iletilerinizi silemezsiniz
Bu forumda dosya ekleyemezsiniz


Git:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB3 Türkçe: phpBB Türkiye
phpBB SEO

XHTML 1.0 Standartlarina Uygundur!  CSS 2.1 Standartlarina Uygundur!