Ir para conteúdo
Fórum Script Brasil
  • 0

Arredondamento de parcelas VBA


Rodolpho dos Santos

Pergunta

Bom dia

Eu pesquisei nos topicos e não encontrei a solução para o que estou precisando no meu serviço

Eu preciso por exemplo pegar um valor e dividir por uma quantidade de parcelas e caso tenha diferença a primeira tem que ficar com a diferença e as demais com parcelas iguais

Exemplo:

Vou digitar um cartão de 1.000,00 que foi parcelado em 7 vezes terei que ficar assim:

142,90
142,85
142,85
142,85
142,85
142,85
142,85

Porém esta ficando assim:

142,84
142,86
142,86
142,86
142,86
142,86

142,86

 

 

    Segue o codigo

parcelado = numValor / cxcParcelas
                variavel = 0
                
                For i = 1 To cxcParcelas
                                
                            
            Sheets("Cartao").Select
            Range("A2000").End(xlUp).Select
            
                                        
                    With ActiveCell
                        .Offset(1, 0).Value = txtCContabil
                        .Offset(1, 1).Value = txtCC
                        .Offset(1, 2).Value = 10
                        .Offset(1, 3).Value = txtDepto
                        .Offset(1, 4).Value = "0A"
                        If variavel = 0 Then
                        
                           
                            Total = Format(numValor, "#,##0.00")
                            menosparcela = cxcParcelas - 1
                            parceladof = Format(parcelado, "#,##0.00")
                            subtotal = menosparcela * (parceladof)
                            subtotal = Format(subtotal, "#,##0.00")
                            soma = Total - subtotal
                            .Offset(1, 5).Value = soma
                            variavel = 1
                                             
                            Else
                            
                                .Offset(1, 5).Value = CDec(parcelado)
                                parcelado = Format(parcelado, "#,##0.00")

 

Se alguém puder me ajudar

Grato

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá, Rodolpho.

Somente olhando o seu código fica difícil propor uma solução.

Tente adaptar os comandos abaixo, se não conseguir sugiro que você disponibilize uma amostra do seu arquivo.

valor da primeira parcela = [valor da compra] - (Application.RoundDown([valor da compra] / [número de parcelas], 2) * ([número de parcelas] - 1))
valor das demais parcelas =  (Application.RoundDown([valor da compra] / [número de parcelas], 2)

 

Link para o comentário
Compartilhar em outros sites

  • 0

Funcionou, muito obrigado.

Estava faltando o "Application" para fazer funcionar o RoundDown.

 

Ficou assim:

   parcelado = Application.WorksheetFunction.RoundDown((numValor / cxcParcelas), 2)

Ele fez a parcela da divisão do valor digitado pelo numero de parcelas e arredondou para baixo

Obrigado mesmo

3 horas atrás, osvaldomp disse:

Olá, Rodolpho.

Somente olhando o seu código fica difícil propor uma solução.

Tente adaptar os comandos abaixo, se não conseguir sugiro que você disponibilize uma amostra do seu arquivo.

valor da primeira parcela = [valor da compra] - (Application.RoundDown([valor da compra] / [número de parcelas], 2) * ([número de parcelas] - 1))
valor das demais parcelas =  (Application.RoundDown([valor da compra] / [número de parcelas], 2)

 

Funcionou, muito obrigado.

Estava faltando o "Application" para fazer funcionar o RoundDown.

 

Ficou assim:

   parcelado = Application.WorksheetFunction.RoundDown((numValor / cxcParcelas), 2)

Ele fez a parcela da divisão do valor digitado pelo numero de parcelas e arredondou para baixo

Obrigado mesmo

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...