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:

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.

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.
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:
6. Inicializamos o valor da variável com o valor da célula B2.
7. Esvaziamos o intervalo com as frequências.
8. Agora é hora de dividir a quantia de dinheiro inserida. Iniciamos um loop For Next.
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.
Loop
10. Adicione as seguintes linhas de código ao Do While Loop.
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).
End if
12. Teste o programa.
Resultado:

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.