/ / Formulário de usuário do VBA do Excel e intervalos

Formulário de usuário do Excel VBA e intervalos

Você pode usar um Controle RefEdit em Excel VBA para obter um intervalo de um usuário. o Userform vamos criar cores o valor mínimo do alcance armazenado no controle RefEdit.

Userform e intervalos 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 o rótulo, o controle RefEdit e os botões 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 RefEdit clicando em RefEdit na caixa de ferramentas. Em seguida, você pode arrastar um controle RefEdit no Userform.

Nota: Se a sua caixa de ferramentas não tiver um controle RefEdit, defina uma referência ao controle RefEdit. Clique em Ferramentas, Referências e marque a opção Ref. Editar Controle.

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 dos botões Userform, label e command, clique em View, Properties Window 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()

Sheet1.Cells.Font.Color = vbBlack
UserForm1.RefEdit1.Text = Selection.Address

End Sub

Explicação: a primeira linha de código altera a cor da fonte de todas as células na folha1 para preto. A segunda linha de código obtém o endereço da seleção atual e a exibe no controle RefEdit.

Agora criamos a primeira parte do formulário de usuário. Embora pareça arrumado, nada acontecerá quando clicarmos nos botões de comando no Userform.

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 addr As String, rng, cell As Range, minimum As Double

addr = RefEdit1.Value
Set rng = Range(addr)
minimum = WorksheetFunction.Min(rng)

For Each cell In rng
    If cell.Value = minimum Then cell.Font.Color = vbRed
Next cell

End Sub

Explicação: Primeiro, obtemos o endereço do controle RefEdit e o armazenamos na variável String addr. Em seguida, definimos rng para o intervalo especificado no controle RefEdit. Em seguida, usamos a função de planilha Min para encontrar o valor mínimo no intervalo. Finalmente, colorimos o (s) valor (es) mínimo (s) usando um loop.

13. Clique duas vezes no botão Cancelar.

14. Adicione a seguinte linha de código:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Explicação: esta linha de código fecha o Userform quando você clica no botão Cancelar.

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

Resultado:

Formulário de usuário e resultado de intervalos

Leia também: