Como preencher uma caixa de texto com base na seleção efetuada numa caixa de combinação no UserForm do Excel?
Imagine que tem uma tabela com uma coluna de Nomes e outra com Números de Funcionário, tal como mostrado na imagem seguinte. Pretende agora criar um UserForm com uma caixa de combinação que liste todos os nomes e uma caixa de texto que preencha automaticamente o número de funcionário correspondente ao nome selecionado. O método descrito neste artigo permite-lhe realizar esta tarefa com facilidade.

Preencher caixa de texto com base na seleção da caixa de combinação no UserForm com VBA
Preencher caixa de texto com base na seleção da caixa de combinação no UserForm com VBA
Siga os passos abaixo para preencher a caixa de texto com o valor correspondente à seleção efetuada na caixa de combinação do UserForm.
1. Prima as teclas Alt+F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Na janela do Microsoft Visual Basic for Applications, clique em Inserir > UserForm. Veja a imagem:

3. Em seguida, insira um controlo Caixa de Combinação e um controlo Caixa de Texto no UserForm criado, tal como ilustrado na imagem seguinte.

4. Clique com o botão direito do rato em qualquer espaço vazio do UserForm e, em seguida, clique em Ver Código no menu de contexto. Veja a imagem:

5. Na janela (Código) do UserForm que se abre, copie e cole o seguinte código VBA para substituir o original.
Código VBA: Preencher caixa de texto com base na seleção da caixa de combinação no UserForm
Dim xRg As Range
'Updated by Extendoffice 2018/1/30
Private Sub UserForm_Initialize()
Set xRg = Worksheets("Sheet5").Range("A2:B8")
Me.ComboBox1.List = xRg.Columns(1).Value
End Sub
Private Sub ComboBox1_Change()
Me.TextBox1.Text = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, xRg, 2, False)
End Sub Nota: No código, A2:B2 é o intervalo que contém os valores a preencher separadamente na caixa de combinação e na caixa de texto do UserForm, e Sheet5 é o nome da folha de cálculo que contém o intervalo de dados. Por favor, ajuste-os conforme necessário.
6. Prima as teclas Alt + Q para sair da janela do Microsoft Visual Basic for Applications.
7. Clique em Programador > Inserir > Botão de Comando (Controlo ActiveX) para inserir um botão de comando na folha de cálculo.
8. Clique com o botão direito do rato no separador da folha e selecione Ver Código no menu de contexto. Depois, copie e cole o código VBA na janela de código.
Código VBA: Mostrar UserForm
Private Sub CommandButton1_Click()
'Updated by Extendoffice 2018/1/30
UserForm1.Show
End Sub 9. Desative o Modo de Estrutura no livro.
Clique no botão de comando para abrir o UserForm indicado. Verá então todos os nomes reunidos na caixa de combinação. Ao selecionar um nome nessa caixa, o respetivo número de funcionário será automaticamente preenchido na caixa de texto, tal como ilustrado na imagem seguinte.

Artigos relacionados:
- Como preencher uma caixa de combinação com os dados especificados ao abrir o livro?
- Como preencher automaticamente outras células ao selecionar um valor numa lista suspensa do Excel?
- Como preencher automaticamente outras células ao selecionar um valor numa lista suspensa do Excel?
- Como preencher os resultados da pesquisa do Google diretamente na folha de cálculo do Excel?
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos