1

Konu: Excel de VB fonksiyonu otomatik hesaplama hk.

Merhaba Arkadaşlar.
Kusura bakmayın
Mevcut başlıklarımız dışında bir konu ama acil ihtiyacım var.


Aşağıdaki fonksiyon "DÖVİZ CİNSİ" ve ilgili "AY" a göre kuru bulup "TUTAR" ı TL ye çeviriyor.
fonksiyon kurları "kur" sayfasından alıyor.

"Tutar","Ay" ve "Döviz cinsi" değiştiğinde hücre değeri güncelleniyor.
Fakat "Ay" ve "Döviz" e göre tablodan bulduğu kur değiştiğinde hücre değeri güncellenmiyor.
formulün bulunduğu hücre üzerine gidip F2+Enter yaparsam güncelleniyor.

F9 hesapla işe yaramıyor.

Yardımlarınız için teşekkürler.

***Hücre Formulü:

sayfa1 deki formul
=bcevir(A1;A2;A3)

Function bcevir(TUTAR As Double, CNS As String, AY As Integer) 'döviz den TL ye çevirir'
Dim Z As Integer
Dim KURLAR$(3, 12)
Rem önceki yıl ARALIK
KURLAR$(1, 0) = Worksheets("kur").Range("b2").Value
KURLAR$(2, 0) = Worksheets("kur").Range("b3").Value
KURLAR$(3, 0) = Worksheets("kur").Range("b4").Value
Rem OCAK
KURLAR$(1, 1) = Worksheets("kur").Range("C2").Value
KURLAR$(2, 1) = Worksheets("kur").Range("C3").Value
KURLAR$(3, 1) = Worksheets("kur").Range("C4").Value
Rem ŞUBAT
KURLAR$(1, 2) = Worksheets("kur").Range("D2").Value
KURLAR$(2, 2) = Worksheets("kur").Range("D3").Value
KURLAR$(3, 2) = Worksheets("kur").Range("D4").Value
Rem MART
KURLAR$(1, 3) = Worksheets("kur").Range("E2").Value
KURLAR$(2, 3) = Worksheets("kur").Range("E3").Value
KURLAR$(3, 3) = Worksheets("kur").Range("E4").Value
Rem NİSAN
KURLAR$(1, 4) = Worksheets("kur").Range("F2").Value
KURLAR$(2, 4) = Worksheets("kur").Range("F3").Value
KURLAR$(3, 4) = Worksheets("kur").Range("F4").Value
Rem MAYIS
KURLAR$(1, 5) = Worksheets("kur").Range("G2").Value
KURLAR$(2, 5) = Worksheets("kur").Range("G3").Value
KURLAR$(3, 5) = Worksheets("kur").Range("G4").Value
Rem HAZİRAN
KURLAR$(1, 6) = Worksheets("kur").Range("H2").Value
KURLAR$(2, 6) = Worksheets("kur").Range("H3").Value
KURLAR$(3, 6) = Worksheets("kur").Range("H4").Value
Rem TEMMUZ
KURLAR$(1, 7) = Worksheets("kur").Range("I2").Value
KURLAR$(2, 7) = Worksheets("kur").Range("I3").Value
KURLAR$(3, 7) = Worksheets("kur").Range("I4").Value
Rem AĞUSTOS
KURLAR$(1, 8) = Worksheets("kur").Range("J2").Value
KURLAR$(2, 8) = Worksheets("kur").Range("J3").Value
KURLAR$(3, 8) = Worksheets("kur").Range("J4").Value
Rem EYLÜL
KURLAR$(1, 9) = Worksheets("kur").Range("K2").Value
KURLAR$(2, 9) = Worksheets("kur").Range("K3").Value
KURLAR$(3, 9) = Worksheets("kur").Range("K4").Value
Rem EKİM
KURLAR$(1, 10) = Worksheets("kur").Range("L2").Value
KURLAR$(2, 10) = Worksheets("kur").Range("L3").Value
KURLAR$(3, 10) = Worksheets("kur").Range("L4").Value
Rem KASIM
KURLAR$(1, 11) = Worksheets("kur").Range("M2").Value
KURLAR$(2, 11) = Worksheets("kur").Range("M3").Value
KURLAR$(3, 11) = Worksheets("kur").Range("M4").Value
Rem ARALIK
KURLAR$(1, 12) = Worksheets("kur").Range("N2").Value
KURLAR$(2, 12) = Worksheets("kur").Range("N3").Value
KURLAR$(3, 12) = Worksheets("kur").Range("N4").Value

If UCase$(CNS) = "TRL" Then
bcevir = 1 * TUTAR
Else
If UCase$(CNS) = "GBP" Then Z = 1
If UCase$(CNS) = "EUR" Then Z = 2
If UCase$(CNS) = "USD" Then Z = 3

bcevir = KURLAR$(Z, AY) * TUTAR
End If

End Function

2

Re: Excel de VB fonksiyonu otomatik hesaplama hk.

Belki birisine gerekebilir.

Application.Volatile


ile problemim çözüldü.
İyi Çalışmalar Dilerim.