/ / Contas e moedas no Excel VBA

Contas e Moedas no Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA que divide uma quantia de dinheiro em notas e moedas.

Situação:

Contas e Moedas no Excel VBA

Crie um evento de alteração de planilha. Código adicionado ao evento de alteração de planilha será executado pelo Excel VBA quando você altera uma célula em uma planilha.

1. Abra o Editor do Visual Basic.

2. Clique duas vezes na Planilha1 (Planilha1) no Explorador de Projetos.

3. Escolha Planilha na lista suspensa à esquerda. Escolha Alterar na lista suspensa à direita.

Evento de Alteração de Planilha no Excel VBA

Adicione as seguintes linhas de código ao evento de alteração de planilha:

4. Declare uma variável chamada quantidade do tipo Double e uma variável i do tipo Integer.

Dim amount As Double, i As Integer

5. O evento de alteração da folha de cálculo escuta todas as alterações na Folha1. Queremos apenas que o Excel VBA faça alguma coisa se algo mudar na célula B2. Para conseguir isso, adicione a seguinte linha de código:

If Target.Address = "$B$2" Then

6. Inicializamos o valor da variável com o valor da célula B2.

amount = Range("B2").Value

7. Esvaziamos o intervalo com as frequências.

Range("B5:B16").Value = ""

8. Agora é hora de dividir a quantia de dinheiro inserida. Iniciamos um loop For Next.

For i = 5 To 16

9 Vamos fazer uso da estrutura Do While Loop. O código colocado entre essas palavras será repetido enquanto a parte após Do While for verdadeira. Queremos que o Excel VBA repita as linhas de código na etapa 10, desde que a quantidade seja maior ou igual a Cells (i, 1) .value.

Do While amount >= Cells(i, 1).Value

Loop

10. Adicione as seguintes linhas de código ao Do While Loop.

Cells(i, 2).Value = Cells(i, 2).Value + 1
amount = amount - Cells(i, 1).Value

Explicação: contanto que quantidade seja maior ou igual a Células (i, 1) .valor, a quantia contém contas / moedas deste valor. Como resultado, o Excel VBA incrementa a frequência dessa conta / moeda (primeira linha) e subtrai o valor da conta / moeda do montante (segunda linha). Este processo será repetido até que a quantidade se torne menor do que o valor de Células (i, 1). Em seguida, o Excel VBA incrementa i e vai para a próxima conta / moeda para ver quantas vezes essa conta / moeda se encaixa no valor restante. Desta forma, a quantia de dinheiro será dividida em notas e moedas até que não haja mais dinheiro para dividir.

11. Feche o loop For Next e não se esqueça de fechar a instrução if (ambos fora do Do While Loop).

   Next i
End if

12. Teste o programa.

Resultado:

Resultado das contas e moedas

Nota: é claro que o montante inserido não contém necessariamente todas as notas / moedas. Se a quantia não contiver uma certa nota / moeda, a parte depois de Do While nunca se torna verdadeira para essa conta / moeda e o Excel VBA vai diretamente para a próxima fatura / moeda.

Leia também: