sexta-feira, 26 de junho de 2020

Obtendo o valor financiado a partir da parcela

Desenvolvi este código há muito tempo, vou deixar aqui para quem quiser utilizar.
O valor financiado quase sempre terá uma diferença de centavos, devido as decimais que envolvem o cálculo.
A tabela price está considerando a contagem dias corridos, ou seja, varia de 30, 31, 28 ou 29 dias conforme o mês (lembrando que no cálculo com a HP12 o resultado será sempre diferente pois a mesma considera todos os meses com 30 dias).
No início da função estão as informações de como passar os parâmetros.
Testem antes de utilizar!

;-)


Public Function f_composicao(taxa As Double, _
                            qtd_parcelas As Integer, _
                            dt_inicio As String, _
                            dt_primeira_parcela As String, _
                            vlr_parcela) As Double
                            
    'Para passar os argumentos desta função:
    'Informar valores no padrão americano (ponto no lugar de vírgula)
    'Informar data entre aspas duplas (string) Exemplo: "31/07/2013"
    'Informat a taxa em percentual. Exemplo 1,5% -> informar 0.015
                            
    Dim i                   As Integer
    Dim tx_ao_dia           As Double
    Dim vlr_composicao      As Double
    
    tx_ao_dia = Fix((((taxa + 1) ^ (1 / 30) - 1) * 100) * 1000000000) / 1000000000
    
    vlr_composicao = 0
    
    'Primeira parcela
    vlr_composicao = vlr_parcela * (Fix(1 / ((tx_ao_dia / 100 + 1) ^ ((CDate(dt_primeira_parcela) - CDate(dt_inicio)))) * 1000000000) / 1000000000)
    
    For i = 1 To qtd_parcelas - 1
        vlr_composicao = vlr_composicao + vlr_parcela * (Fix(1 / ((tx_ao_dia / 100 + 1) ^ (DateAdd("M", i, CDate(dt_primeira_parcela)) - CDate(dt_inicio))) * 1000000000) / 1000000000)

    Next
    f_composicao = vlr_composicao
    
    Exit Function

End Function






Nenhum comentário:

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.