/ / Conversor de moedas no Excel VBA

Conversor de Moedas no Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA que cria uma forma de usuário que converte qualquer quantia de um moeda em outro.

A forma de usuário que vamos criar é a seguinte:

Conversor de Moedas no Excel VBA

Para criar este formulário de usuário, execute as etapas a seguir.

1. Abra o Editor do Visual Basic. Se o Explorador de Projetos não estiver visível, clique em Visualizar, Explorador de Projetos.

2. Clique em Inserir, Userform. Se a caixa de ferramentas não aparecer automaticamente, clique em Exibir, Caixa de ferramentas. Sua tela deve ser configurada como abaixo.

Configuração da Tela Userform no Excel VBA

3 Adicione os rótulos, caixas de listagem (primeiro à esquerda, o segundo à direita), caixas de texto (primeiro à esquerda, o segundo à direita) e o botão de comando. Depois que isso for concluído, o resultado deve ser consistente com a imagem da forma de usuário mostrada anteriormente. Por exemplo, crie um controle de caixa de listagem clicando em ListBox na caixa de ferramentas. Em seguida, você pode arrastar uma caixa de listagem no Userform.

4 Você pode alterar os nomes e as legendas dos controles. Os nomes são usados ​​no código do Excel VBA. Legendas são aquelas que aparecem na tela. É uma boa prática alterar os nomes dos controles, mas isso não é necessário aqui porque temos apenas alguns controles neste exemplo. Para alterar a legenda da forma de usuário, botão de comando e rótulos, clique em Exibir, janela Propriedades e clique em cada controle.

5. Para mostrar a forma de usuário, coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Agora vamos criar o Sub UserForm_Initialize. Quando você usa o método Show para o Userform, este sub será automaticamente executado.

6. Abra o Editor do Visual Basic.

7. No Project Explorer, clique com o botão direito do mouse em UserForm1 e clique em View Code.

8. Escolha Userform na lista suspensa à esquerda. Escolha Inicializar na lista suspensa à direita.

9. Adicione as seguintes linhas de código:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

With ListBox2
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

ListBox1.ListIndex = 1
ListBox2.ListIndex = 0

TextBox1.Value = 1
TextBox2.Value = 0.722152

End Sub

Explicação: primeiro, as duas caixas de listagem estão preenchidas. Em seguida, a moeda do dólar americano é definida como padrão na primeira caixa de listagem e a moeda do euro é definida como padrão na segunda caixa de listagem. Finalmente, o valor 1 é inserido na primeira caixa de texto e o valor 0.722152 é inserido na segunda caixa de texto.

Agora criamos a primeira parte do formulário de usuário. Embora pareça arrumado, nada acontecerá quando clicarmos no botão Ir.

10. No Project Explorer, clique duas vezes em UserForm1.

11. Clique duas vezes no botão Ir.

12. Adicione as seguintes linhas de código:

Private Sub CommandButton1_Click()

Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer

rates(0, 0) = 1
rates(0, 1) = 1.38475
rates(0, 2) = 0.87452

rates(1, 0) = 0.722152
rates(1, 1) = 1
rates(1, 2) = 0.63161

rates(2, 0) = 1.143484
rates(2, 1) = 1.583255
rates(2, 2) = 1

For i = 0 To 2
    For j = 0 To 2
        If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value * rates(i, j)
    Next j
Next i

End Sub

Explicação: primeiro, declaramos um array. O array tem duas dimensões. Consiste em 3 linhas e 3 colunas. Em seguida, inicializamos cada elemento da matriz. Por exemplo, as taxas (1,0) é a taxa de câmbio entre o dólar americano e o euro. Em seguida, iniciamos um loop duplo. Dependendo das moedas selecionadas nas caixas de listagem, o Excel VBA converte o valor inserido na primeira caixa de texto e exibe o resultado na segunda caixa de texto.

Exemplo: se i = 2 ej = 1 e inserimos o valor 2 na primeira caixa de texto, o Excel VBA coloca o valor 2 * rates (2,1) = 2 * 1,583255 = 3,16651 na segunda caixa de texto.

13. Teste o formulário do usuário.

Resultado:

Resultado do Conversor de Moeda

Leia também: