Notifications
Clear all

Atualizar combobox através de outra combobox

6 Posts
4 Usuários
0 Reactions
1,678 Visualizações
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Bom dia
Existe alguma forma de criar um combobox em um userform e esta ser atualizada por outra combobox?
Obrigado

 
Postado : 14/03/2013 7:06 am
(@eduhaag)
Posts: 36
Trusted Member
 

Ola amigo,
Não consegui entender muito bem sua duvida.
Por exemplo,
um combobox com estados Brasileiros, e um com cidades do estado...você gostaria que quando selecionasse um estado o combobox das cidades ja fosse preenchidos com as cidades desse estado?

 
Postado : 14/03/2013 7:40 am
(@mylton)
Posts: 59
Trusted Member
Topic starter
 

Vou tentar me explicar melhor..rsrs
Desejo uma combo ex: cor. Com as seguintes cores ja informadas no VBA: amarelo, azul e vermelho.
Em outra combo ou de algum outro jeito como poderia cadastrar mais cores? Ex: abóbora, preto e assim sucessivamente.

 
Postado : 14/03/2013 7:53 am
(@fcarvalho)
Posts: 19
Eminent Member
 

Boa tarde amigos do Planilhando.com.br!

Tenho o seguinte problema em minhas mãos.
Estou criando um controle de gastos onde trabalho, e necessito que uma 2ª combobox seja atualizada quando a 1ª for preenchida.

EX: Quando a ComboBox "Categoria" for preenchida, as opções da Combobox "Tipo" fiquem disponiveis para escolha. Porém da forma que fiz no anexo, ambas estão carregando quando o formulario é inicializado, sendo assim todas as opções da ComboBox "Tipo" estão livres para escolha, isso aumenta a possibilidade de erro na hora do preenchimento.

EX: CATEGORIA = Veiculos >> Tipo (Parcela, combustivel, estacionamento)
CATEGORIA = Infraestrutura >> Tipo (Man. Predial, Reformas, Contabilidade)
CATEGORIA = Contas de Consumo >> Tipo (NEXTEL, TELEFONE/INTERNET, CELULAR, ALUGUEL, AGUA, ELETROPAULO)

e assim por diante...

desde já agradeço.. e aguardo retorno.

 
Postado : 18/03/2013 9:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Conforme está pode utilizar assim:

Private Sub ComboBoxcategoria_Change()
ComboBoxtipo.Clear   'Limpa os dados do combo para receberem novos valores
'Se preferir pode utilizar if then else
Select Case ComboBoxcategoria.Value
    Case "VEICULOS"
        ComboBoxtipo.AddItem "Parcela"
        ComboBoxtipo.AddItem "Combustivel"
        ComboBoxtipo.AddItem "Estacionamento"
    Case "INFRAESTRUTURA"
        ComboBoxtipo.AddItem "Man. Predial"
        ComboBoxtipo.AddItem "Reformas"
        ComboBoxtipo.AddItem "Contabilidade"
    Case "CONTAS DE CONSUMO"
        ComboBoxtipo.AddItem "3"
        ComboBoxtipo.AddItem "6"
        ComboBoxtipo.AddItem "9"
        ComboBoxtipo.AddItem "12"
'e assim em diante; note que o valor da Categoria deve ser escrito conforme está na planilha (sensivel a letras maiusculas/minusculas)
End Select
ComboBoxtipo.ListIndex = -1   'apresenta a combo sem item selecionado
End Sub

O inconveniente do modo acima, e que para cada alteração (inclusão/exclusão ou alteração do texto) deve ser feito na edição do codigo.

Contudo, pode se utilizar o mesmo "conceito" utilizado na inicialização do formulario para Carregar a combo tipo, no eventos change da combo categoria acrescentando um IF (Se); contudo sua lista de tipos deve estar "amarrada" com a categoria para poder ser selecionada corretamente.
Seria algo assim:

'preenche combobox tipo quando formulario for inicializado
lin = 10

Do Until Plan1.Cells(lin, 2) = ""
If Plan1.Cells(lin, 1) = ComboBoxcategoria.Value Then
ComboBoxtipo.AddItem Plan1.Cells(lin, 2)
lin = lin + 1
End If
Loop
 
Postado : 18/03/2013 11:02 am
(@fcarvalho)
Posts: 19
Eminent Member
 

Reinaldo,

Utilizei a primeira opção, pois não entendi como montaria a segunda.
Funcionou perfeitamente.

Muito obrigado cara, me ajudou demais.

Abraço,
:D

 
Postado : 21/03/2013 12:39 pm