Notifications
Clear all

recebimentos de cartões - divisão de parcelas

7 Posts
3 Usuários
0 Reactions
1,632 Visualizações
(@needfsw)
Posts: 34
Eminent Member
Topic starter
 

estou montando uma planilha que lanço vendas efetuadas com a forma de pagamento através de cartões de créditos, quando vou dividir por exemplo 1000 por 6 o resultado arredondado é 166,67 ai gostaria de que a ultima parcela ficassem um pouco menor 166,65 para soma ficar 1000 exatos. e não estou conseguindo fazer isso.

 
Postado : 04/12/2017 2:44 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

needfsw,

Boa noite!

Vi seu arquivo e código superficialmente. Até onde entendi, o que você precisa fazer para que o valor da última parcela, somado às demais parcelas feche com o valor total da venda é, no seu código, ao receber a quantidade de parcelas, retirar uma parcela (que será a última). Desse modo, se o usuário informar que quer pagar em 6 parcelas, por exemplo, dentro do código, reduzindo 1, sua quantidade de parcelas deverá ser de apenas 5. Desse modo,você vai dividir o valor a pagar normalmente pela quantidade total de parcelas (6) para saber o valor das CINCO PARCELAS e deve armazenar o valor total das cinco parcelas iguais. Do valor total a pagar parcelado em 6 vezes, você então subtrai o valor total das 5 parcelas e armazena isso numa variável chamada, por exemplo, última parcela. Daí é só inserir o conteúdo dessa variável no ´[ultimo lançamento como sendo o valor da última parcela.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/12/2017 4:37 pm
(@needfsw)
Posts: 34
Eminent Member
Topic starter
 

entendi mas não consegui fazer através do vba.

 
Postado : 04/12/2017 7:21 pm
(@mprudencio)
Posts: 2749
Famed Member
 

O que o vagner explicou é algo mais ou menos assim

Dim UltimaParcela as Currency
Dim NumeroParcela as long
Dim Valor as Currency
Dim ValorParcela as Currency



Valor = txtvalor.value
NumeroParcela = txtNumeroParcela.value
ValorParcela = Valor/NumeroParcela
UltimaParcela = Valor - ValorParcela*(NumeroParcela - 1)

Codigo para lançar as parcelas ate a penultima.

Codigo para lançar a ultima parcela

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 04/12/2017 7:50 pm
(@needfsw)
Posts: 34
Eminent Member
Topic starter
 
Private Sub inserirdados()

    Set tbldados = shtdados.ListObjects("tbldados")
    valortotal = CDbl(txtvalor)
    descbandeira = cbobandeira
    descforma = cboforma
    taxa = WorksheetFunction.VLookup(descbandeira, shtinicial.Range("tblbandeira"), cboforma.ListIndex + 2, 0)
    datavenda = txtdata
    Select Case cboforma
        Case "Débito", "Crédito à Vista"
            nparcelas = 1
        Case "Crédito Parcelado"
            nparcelas = cboparcelas.ListIndex + 2
    End Select
    'totalacumulado = 0
    For i = 1 To nparcelas
        totalbruto = Round(valortotal / nparcelas, 2)
        'totalacumulado = totalacumuldado + totalbruto
            If i = nparcelas Then
               ' diferenca = totalacumulado - valortotal
                totalbruto = totalbruto - diferenca
            End If
        totalliquido = Round(totalbruto * (1 - taxa), 2)
        datarecebimento = IIf(cboforma = "Débito", DateAdd("d", i, datavenda), DateAdd("m", i, datavenda))
        descparcela = i & " de " & nparcelas
        Set novolancamento = tbldados.ListRows.Add
        
        novolancamento.Range(1, 1) = CLng(TXTID)
        novolancamento.Range(1, 2) = descparcela
        novolancamento.Range(1, 3) = descbandeira
        novolancamento.Range(1, 4) = descforma
        novolancamento.Range(1, 5) = taxa
        novolancamento.Range(1, 6) = CDate(datavenda)
        novolancamento.Range(1, 7) = CDate(datarecebimento)
        novolancamento.Range(1, 8) = totalbruto
        novolancamento.Range(1, 9) = totalliquido
        
        
    Next i
    MsgBox "Venda Resgistrada com Sucesso", vbInformation
End Sub

"esse é o código que utilizei aonde eu mudo?"

 
Postado : 04/12/2017 8:34 pm
(@needfsw)
Posts: 34
Eminent Member
Topic starter
 

tentei mudar e não deu certo, agora não mais nem lançando

 
Postado : 09/12/2017 12:04 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Corriga essa linha

totalacumulado = totalacumuldado + totalbruto

Minha sugestão: Não utilize variaveis sem fazer as devidas declarações, isso pode induzir ao erro como o acima alem de outros problemas como a dificuldade para uma possivel manutenção no seu codigo.

So encontrei o erro apos declarar as variaveis.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 09/12/2017 2:27 pm