Notifications
Clear all

Limpar "Histórico" Última Opção Combobox Form

5 Posts
2 Usuários
0 Reactions
1,027 Visualizações
(@renan)
Posts: 8
Active Member
Topic starter
 

Bom dia a todos!

Venho mais uma vez solicitar a ajuda dos mais experientes.

Preciso de um código que limpe minhas várias ComboBox dentro de uma Form, no evento change de uma outra, por exemplo:

Box A = Valor A
Box B = Valor B
Box C = Valor C

Quando alterado Box A, com qualquer outra opção da lista, limpar os valores da Box B e C. Até esta parte é tranquilo, já usei no evento Change da Box A, as opções:

boxB.Value = Clear
boxB.Value = ""
boxB.Value = Empty
boxB = Null

Todas elas limpam a seleção naquele momento, mas se expando a Box novamente com ela já "limpa", o tal "histórico" de todos os itens desta última seleção está lá.

Só para efeito de comparação, antes de usar Form, pelo excel, usei o código para limpar os itens da lista suspensa:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" Then
Application.EnableEvents = False
[F5,H5,J5,F12,H12].ClearContents
Application.EnableEvents = True
End If

Desta forma realmente todos os itens de uma opção, "sumiam" da lista de escolha.

Me desculpem se faltar informação, e se precisar coloco outros exemplos.

Obrigado!

Att, Renan.

 
Postado : 25/01/2013 7:00 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A sintaxe para "limpar" um combobox seria: combobox.Clear, no seu exemplo boxB.Clear. Até ai tudo bem.
Porem "mas se expando a Box novamente com ela já "limpa", o tal "histórico" de todos os itens desta última seleção está lá."
É preciso saber tb qual o critéio/evento e utilizado para Carregar essas combos. Pois pode ser que após "limpar" ou mesmo ao expandir; pode estar disparando a rotina que "re"carrega os dados.
Poste um exemplo que ficará mais facil seguirmos o processo e dar um retorna eficaz

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/01/2013 7:34 am
(@renan)
Posts: 8
Active Member
Topic starter
 

Reinaldo,ok.

Envio em anexo vários exemplos para simplificar.
Agradeço pela ajuda e atenção.

Att, Renan.

 
Postado : 25/01/2013 8:05 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente na rotina limpa:

'Botão que limpa as combobox
Private Sub bt_limpar_Click()
combo_produto.RowSource= "" (ou Empty)
combo_forma.RowSource= ""
combo_familia.RowSource= ""
combo_eixosaida.Value = Empty
combo_estagios.Value = Empty

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/01/2013 8:14 am
(@renan)
Posts: 8
Active Member
Topic starter
 

Reinaldo,

Poxa vida, não tinha pensado nesta solução, resolveu perfeitamente.
No evento combo, e no botão limpar, adicionei sua orientação, para cada combo, o vazio "" e o Empty pra zerar o selecionado no momento:

'Botão que limpa as combobox
Private Sub bt_limpar_Click()
combo_produto.Value = Empty
combo_forma.Value = Empty
combo_forma.RowSource = ""
combo_familia.Value = Empty
combo_familia.RowSource = ""
combo_eixosaida.Value = Empty
combo_eixosaida.RowSource = ""
combo_estagios.Value = Empty
combo_estagios.RowSource = ""

Mais uma vez eu te agradeço pela ajuda. Muito obrigado.

Abraços.

Att, Renan.

 
Postado : 25/01/2013 8:28 am