(Application.Volatile True) kodunu kullanarak hücredeki bir değer her değiştirildiğinde Excel’i yeniden hesaplama yapmaya zorlayabilirsiniz.
CTRL + ALT + F9 tüm fonksiyon prosedürlerini yeniden hesaplamaya zorlar.
Aşağıdaki makro kodu güncel yıldan seçili yılı çıkarır. Değişken değeri tarihtir. Geri döndürülen değer Long’tur.
Public Function makro_yil(Tarih As Date) As Long makro_yil = Year(Date) - Year(Tarih) End Function
Aşağıdaki makro kodu güncel yıldan seçili yılı çıkarır ve isteğe bağlı olarak yazı eklenebilir. Formül yazı içerebileceği için geri döndürülen değer Variant’dır.
Public Function makro_yil2(Tarih As Date, Optional Yazi As String) As Variant If VBA.IsMissing(Yazi) Then makro_yil2 = Year(Date) - Year(Tarih) Else makro_yil2 = Year(Date) - Year(Tarih) & " " & Yazi End If End Function
Aşağıdaki makro kodu güncel tarihten seçili tarihi çıkarır, kalan ay ve yıl sayısını gösterir. Formül yazı içerdiği için geri döndürülen değer String’dir.
Function makro_yas_hesabi(Tarih As Date) As String Dim aylar As Long Dim yillar As Long aylar = Month(Date) - Month(Tarih) yillar = Year(Date) - Year(Tarih) If aylar < 0 Then yillar = yillar - 1 aylar = 12 - VBA.Abs(aylar) End If makro_yas_hesabi = yillar & " yıl, " & aylar & " ay" End Function