excel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
excel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Mart 2014 Cuma

Kullanıcı Tanımlı Fonksiyonlar (User Defined Functions)



Excelde hazır fonksiyonlar yeterli gelmediği zaman ya da sürekli tekrarladığınız bir işlemi artık
tekrar tekrar formül çubuğuna yazmak istemediğiniz durumlarda kendi tanımladığınız fonksiyonları kullanabilirsiniz.

Öncelikle boş bir excel sayfası açalım ve visual basic ekranına girelim (kısayol:alt F11)

Buradan içinde bulunduğumuz excel sayfasına bir modül ekleyerek kod ekranına geçelim.

Burada kolaydan zora doğru sıralanan 3 farklı fonksiyon örneği göreceğiz.

 
1) KDV  hesaplama,

Function kdv 'fonksiyonumuzun adı (a as integer ' hesaplamada kullanacağımız değişken tipi)

kdv= a *0,18

End function





2)  Çok değişkenli sayı tipi sonuç döndüren eğer'li fonksiyon,

Vade aralığına göre çekilen krediye ne kadar faiz ödeyeceğimizi hesaplayalım,

örneğin 12 aya kadar ki vade de fazi oranı % 1, 12 - 24 ay arası %1,2, 24 aydan fazlası % 1,8 faiz olsun,

Function faizhesapla(ByVal anapara As Double, ByVal vade As Integer) As Double

If vade <= 12 Then
faizhesapla = 0.1 * anapara

ElseIf vade <= 24 Then
faizhesapla = 0.12 * anapara

Else: faizhesapla = 0.18 * anapara

End If
 
End Function

şimdi adım adım kodu okumaya çalışalım:
 
Function faizhesapla(ByVal anapara As Double, ByVal vade As Integer) As Double 'bir fonksiyon oluştur adı faizhesapla olsun, dışarıdan tipi double olan ana para ve tipi tam sayı olan vade değerlerini alsın ve sonucu double tipiyle döndürsün.



3) String tipi (sayı olmayan metin olarak) sonuç döndüren bir fonksiyon yazalım,

Öğrencilerin notlarına göre geçti ya da kaldı bilgisi döndüren fonksiyon


Function gectikaldi(ByVal a As Double) As String

Select Case a

Case Is < 40
gectikaldi = "kaldi"

Case Is >= 40
gectikaldi = "gecti"

End Select

End Function



20 Mart 2014 Perşembe

8 Kasım 2012 Perşembe

VBA-FOR EACH Döngüsü

For each bir nesnenin tüm elemanlarına ulaşmak ve o elemanların içinde dönmemizi sağlayan bir döngüdür.

Belli bir hücre aralığındaki tüm hücrelere istedğimiz bir metni yazdıralım:

 
Sub isimyazdır()

Dim rng As Range

For Each rng In Range("a1:a20")

rng.Value = "excelyardimcim@blogspot.com"

Next rng

End Sub

vba for each
 
Şimdi biraz daha farklı bir örnek üzerinden gidelim:

For each döngüsüyle 1'den 20 ye kadar sayıları sıralamak


Sub arttır()
 
Dim rng As Range
 
Dim sayac As Integer
 
sayac = 1
 
For Each rng In Range("a1:a20")
 
rng.Value = sayac      'ilk hücreme sayacın ilk değeri olan "1" i yazdırdık
 
sayac = sayac + 1       'her bir hücreden sonra sayacın değerini 1 arttırıyoruz. 
 
Next rng
 
End Sub
 
vba for aech
Not: Formül içine yorum yazmak isterseniz yukarıda yaptığım gibi yorumun başına tek tırnak koyarsanız formül bozulmaz.