combobox

Text Box, Form's, rotinas, etc.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

combobox

Mensagempor keznan » Seg Jan 08, 2018 3:32 pm

Galera, boa tarde !
Estou com um problema em combos box dependentes, e estou quebrando a cabeça pra conseguir resolver o problema.
Tenho a seguinte situação, tenho 3 combobox e eles são dependentes.
Quando seleciono na primeira combobox a opção grupo, consigo selecionar qual equipamento e proteção desejo nos combobox, porem para as opções britagem e fabrica, eu não consigo selecionar opções para os combobox de equipamento e proteção o vba me mostra que ja possuo associação para tal elemento, alguem poderia me dar uma mão ?
Você não está autorizado a ver ou baixar esse anexo.
keznan
Membro
Membro
 
Mensagens: 7
Registrado em: Qui Jan 04, 2018 11:16 am
Has thanked: 4 times
Have thanks: 0 time

{ SO_SELECT }

Re: combobox

Mensagempor Reinaldo » Seg Jan 08, 2018 7:08 pm

Uma possibilidade, na rotina Preenche_cbx_eqto(), altere a posição/linha -->On Error Resume Next
para logo após a posição/linha sGrupo = cbx_Grupo.Value
Código: Selecionar todos
....
sGrupo = cbx_Grupo.Value
On Error Resume Next
....
Reinaldo
Gostou da resposta? Clique no ícone "Positivo" da mensagem!(ao lado de citar)
Avatar do usuário
Reinaldo
Expert
Expert
 
Mensagens: 4236
Registrado em: Sáb Dez 19, 2009 9:59 am
Localização: Garça - SP / SCS - SP
Has thanked: 184 times
Have thanks: 1935 times

Re: combobox

Mensagempor rabaloco » Sáb Jul 14, 2018 10:48 am

Bom dia!

Se eu entendi bem o arquivo, e sua dúvida, acho que isso resolve
Code:

Código: Selecionar todos
Dim lastRow As Long

Private Sub cbx_eqto_Change()
    preencherProtecao cbx_Grupo.ListIndex, cbx_eqto.Value
End Sub

Private Sub cbx_Grupo_Change()
    preencherEquipamentos cbx_Grupo.ListIndex
End Sub

Private Sub UserForm_Initialize()
       
    Let lastRow = Plan1.Range(Plan1.Cells(Plan1.Rows.Count, 1).Address).End(xlUp).Row
    cbx_Grupo.List = Plan1.Range("A2:A" & lastRow).Value
End Sub

Sub preencherEquipamentos(grupo As Integer)

    Dim rng As Range
    Dim r
    Dim dic As Object
   
    Select Case grupo
        Case Is = 0: grupo = 2
        Case Is = 1: grupo = 4
        Case Is = 2: grupo = 6
    End Select
   
    Let lastRow = Plan1.Range(Plan1.Cells(Plan1.Rows.Count, grupo).Address).End(xlUp).Row
    Set rng = Plan1.Range(Plan1.Cells(2, grupo).Address, Plan1.Cells(lastRow, grupo).Address)
    Set dic = CreateObject("Scripting.Dictionary")
   
    For Each r In rng
        If Not dic.Exists(r.Value) Then
            dic.Add r.Value, dic.Count + 1
        End If
    Next
   
    With cbx_eqto
        .Clear
        .List = dic.Keys
    End With
End Sub

Sub preencherProtecao(grupo As Integer, equipamento As String)
   
    Dim rng     As Range
    Dim r
    Dim dic     As Object
   
    Select Case grupo
        Case Is = 0: grupo = 3
        Case Is = 1: grupo = 5
        Case Is = 2: grupo = 7
    End Select
   
    Let lastRow = Plan1.Range(Plan1.Cells(Plan1.Rows.Count, grupo).Address).End(xlUp).Row
    Set rng = Plan1.Range(Plan1.Cells(2, grupo).Address, Plan1.Cells(lastRow, grupo).Address)
    Set dic = CreateObject("Scripting.Dictionary")
   
    For Each r In rng
        If Not dic.Exists(r.Value) And r.Offset(0, -1).Value = equipamento Then
            dic.Add r.Value, dic.Count + 1
        End If
    Next
   
    With cbx_Protecao
        .Clear
        .List = dic.Keys
    End With

End Sub



O código acima relaciona tudo com os dados que você mostrou no exemplo, caso mude as formas, logicamente o código vai mudar tbm....espero que ajude! ;)
rabaloco
Membro
Membro
 
Mensagens: 5
Registrado em: Ter Mai 10, 2016 9:24 am
Has thanked: 0 time
Have thanks: 0 time

Re: combobox

Mensagempor MPrudencio » Ter Out 02, 2018 3:33 pm

Se eu entendi direito vc precisa zerar a coleção anteriormente criada.

Por isso da erro.

Veja se atende!!
Você não está autorizado a ver ou baixar esse anexo.
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

MPrudencio
Membro
Membro
 
Mensagens: 2747
Registrado em: Sáb Ago 15, 2015 8:29 pm
Has thanked: 71 times
Have thanks: 599 times


Voltar para Formulários

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes