Aracılığıyla paylaş

Excel Formul Manuel-Otomatik Yenileme Farkı Konusunda Yardım

Anonim
2016-09-28T11:02:20+00:00

Merhaba, 

Hazırlamış olduğum Excel tablomda bir çok veri ve makrolar bulunmakta. 

Aylık maliyet çalışmaları yapıyorum. 

Yalnız yaptığım işlem sonucunda otomatik formül yinelemesi devrede iken  yanlış sonuç ama hücreyi içeriğindeki formule  manuel olarak enter yapıp hücreyi yinelediğimde doğru sonucu veriyor. 

Aradaki bu farkın neden kaynaklandığını ben bulamadım. Yardımcı olmanızı bekliyorum.

Yazmış olduğum makro ve hücredeki formulü aşağıda bulabilirsiniz.

İhtiyaç Durumuna göre; Excel Dosyasını paylaşabilirim.

FORMUL :

EĞERHATA(AYLIK_COST($H18;$K18;$L18;$Z$2;'Çalışılmayan Günler'!$A$8:$A$118);"")

Makro :

Function AYLIK_COST(Cost As Double, start As Date, finish As Date, ay_yil As Date, tatil As Range)

'Application.Volatile

'AYLIK_COST

'sure

'start

'finish

'ay

Dim ay_basi As Date

Dim ay_sonu As Date

'Formula = ActiveCell.FormulaR1C1

ay_basi = ay_yil

ay_sonu = WorksheetFunction.EoMonth(ay_basi, 0)

tatil_ay = 0

tatil_tum = 0

tatil_ay_sonu = 0

tatil_ay_basi = 0

tatil_ay_bay = 0

tatil_tum_bay = 0

tatil_ay_sonu_bay = 0

tatil_ay_basi_bay = 0

cur_row = ActiveCell.Row

For Each cell In tatil

celo = CDate(cell)

If cell.Offset(0, 1).Text = "" And celo >= ay_basi And celo <= ay_sonu Then tatil_ay = tatil_ay + 1

If cell.Offset(0, 1).Text = "" And celo >= start And celo <= finish Then tatil_tum = tatil_tum + 1

If cell.Offset(0, 1).Text = "" And celo >= start And celo <= ay_sonu Then tatil_ay_sonu = tatil_ay_sonu + 1

If cell.Offset(0, 1).Text = "" And celo >= ay_basi And celo <= finish Then tatil_ay_basi = tatil_ay_basi + 1

If cell.Offset(0, 1).Text = "Bayram" And celo >= ay_basi And celo <= ay_sonu Then tatil_ay_bay = tatil_ay_bay + 1

If cell.Offset(0, 1).Text = "Bayram" And celo >= start And celo <= finish Then tatil_tum_bay = tatil_tum_bay + 1

If cell.Offset(0, 1).Text = "Bayram" And celo >= start And celo <= ay_sonu Then tatil_ay_sonu_bay = tatil_ay_sonu_bay + 1

If cell.Offset(0, 1).Text = "Bayram" And celo >= ay_basi And celo <= finish Then tatil_ay_basi_bay = tatil_ay_basi_bay + 1

Next

'cell.Offset(0, -1).Font.Bold = True And

If cells(ActiveCell.Row, 1).Font.Bold = False And start >= ay_basi And start <= ay_sonu Then gun = ay_sonu - start - tatil_ay_sonu - tatil_ay_sonu_bay + 1

If cells(ActiveCell.Row, 1).Font.Bold = False And finish >= ay_basi And finish <= ay_sonu Then gun = finish - ay_basi - tatil_ay_basi - tatil_ay_basi_bay + 1

If cells(ActiveCell.Row, 1).Font.Bold = False And (start >= ay_basi And start <= ay_sonu) And (finish >= ay_basi And finish <= ay_sonu) Then gun = finish - start - tatil_tum - tatil_tum_bay + 1

If cells(ActiveCell.Row, 1).Font.Bold = False And start < ay_basi And finish > ay_sonu Then gun = ay_sonu - ay_basi + 1 - tatil_ay - tatil_ay_bay

If cells(ActiveCell.Row, 1).Font.Bold = True And start >= ay_basi And start <= ay_sonu Then gun_bay = ay_sonu - start - tatil_ay_sonu_bay + 1

If cells(ActiveCell.Row, 1).Font.Bold = True And finish >= ay_basi And finish <= ay_sonu Then gun_bay = finish - ay_basi + 1 - tatil_ay_basi_bay

If cells(ActiveCell.Row, 1).Font.Bold = True And (start >= ay_basi And start <= ay_sonu) And (finish >= ay_basi And finish <= ay_sonu) Then gun_bay = finish - start + 1 - tatil_tum_bay

If cells(ActiveCell.Row, 1).Font.Bold = True And start < ay_basi And finish > ay_sonu Then gun_bay = ay_sonu - ay_basi + 1 - tatil_ay_bay

'If tatil_ay > gun Then tatil_ay = gun

If cells(ActiveCell.Row, 1).Font.Bold = False Then

AYLIK_COST = Round((gun / ((finish - start) + 1 - tatil_tum - tatil_tum_bay)) * Cost, 2)

End If

If cells(ActiveCell.Row, 1).Font.Bold = True Then

AYLIK_COST = Round((gun_bay / ((finish - start) + 1 - tatil_tum_bay)) * Cost, 2)

End If

'ActiveCell.FormulaR1C1 = Formula

'ActiveCell.Calculate

End Function

Microsoft 365 ve Office | Excel | Ev için | Windows

Kilitli Soru. Bu soru Microsoft Destek Topluluğu’ndan aktarıldı. Yararlı olup olmadığını belirtmek için oy verebilirsiniz ancak yorum veya yanıt ekleyemez ya da soruyu takip edemezsiniz.

0 yorum Açıklama yok

1 yanıt

Sıralama ölçütü: En yararlı
  1. Anonim
    2016-09-30T08:42:41+00:00

    Merhaba Hakan Koç_77 ,

    Microsoft Yardıma hoş geldiniz.

    Sorunuzla ilgili olarak, makro ve folmüller ile ilgili maalesef buradan destek verilmemektedir. Sizden ricam Microsoft MSDNformundan gerekli yardım talebinde bulununuz. Anlayışınız ve işbirliğinizden dolayı teşekkür ederim.

    Microsoft ile herhangi bir sorununuzda tekrar iletişime geçmekten çekinmeyiniz.  

    Saygılarımla,

    Metin

    Bu yanıt yardımcı oldu mu?

    0 yorum Açıklama yok