sábado, 25 de fevereiro de 2017

Função para cálculo de parcelas - sistema PRICE

O Excel tem funções financeiras e dentre elas, o cálculo de parcelas "PGTO".
Este cálculo é o mesmo da famosa calculadora HP12C, muito fácil e simples de ser executado.
Existe um outro jeito de calcular o valor das parcelas, porém, diferente dos dois primeiros que mencionei, fazem a contagem de dias corridos entre as parcelas, ou seja, o prazo para o cálculo pode ter 30, 30, 28 ou 29 dias (lembrando que as fórmulas prontas - Excel e HP12C - consideram sempre o mês de 30 dias).
Abaixo o código VBA para efetuar esse cálculo e no link do cabeçalho do blog, a planilha Excel de exemplo para melhor entendimento.
O melhor de ter o código escrito é poder efetuar o cálculo em quantidade como mostra o exemplo abaixo:


A função:


Public Function fn_CalculoParcelas(vlr_empresstimo As Double, _
                            taxa As Double, _
                            qtd_parcelas As Integer, _
                            data_contratacao As String, _
                            vcto_primeira_parcela As String) 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)
    'Informat a taxa em percentual. Exemplo 1,5% -> informar 0.015
                            
    Dim i                   As Integer
    Dim c_price_total       As Double
    Dim c_price_parcela     As Double
    Dim tx_ao_dia           As Double
                           
    'Cálculo do coeficiente price total
    c_price_total = 0
    tx_ao_dia = Fix((((taxa + 1) ^ (1 / 30) - 1) * 100) * 1000000000) / 1000000000
    
    'Cálculo das parcelas
    For i = 1 To qtd_parcelas
        c_price_parcela = Fix(1 / ((tx_ao_dia / 100 + 1) ^ _
            ((DateAdd("M", i, CDate(data_contratacao)) - CDate(data_contratacao)))) * 1000000000) / 1000000000
        c_price_total = c_price_total + c_price_parcela
    Next
          
    c_price_total = Fix(1 / c_price_total * 1000000000) / 1000000000
        
    'Coeficiente total X (valor da proposta - entrada) = valor da parcela sem desconto
    fn_CalculoParcelas = Format((vlr_empresstimo) * Round(c_price_total, 8), "#,##0.00")

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.