Página 1 de 2
Combobox relacionadas
Enviado: Sáb Set 14, 2019 11:13 pm
por pedro_mexico
boa noite amigos do forum.
tenho um formulario simples em que quero queria combinar valores das comboboxs-
A ideia é:
Combobox1 ter os valores da coluna A, e ao selecionar um valor ele fosse dar os valores correspondentes da coluna C
vou explicar
combobox1 valor igual a "Caixa de Velocidades" da coluna A e os resultados da coluna C a apresentar na combobox2 vai da linha C2 ate linha C13
combobox2 valor igual a "Carroçaria e Interior" da coluna A e os resultados da coluna C a apresentar na combobox2 vai da linha C14 ate linha C74
isto depois iria dar automaticamente o valor do codigo na textbox correspondente á linha(colunaD)
Combobox1=A2 "Caixa de Velocidades"
Combobox2=igual aos inntevalo com os valores seguintes da coluna C
"Apoios
Cabos e Tubos
Caixa de Velocidades - Vários
Caixa de Velocidades Automática - Completa
Caixa de Velocidades Manual - Completa
Disco de Embraiagem
Embraiagem - Completa
Embraiagem - Prato
Embraiagem - Rolamento de Encosto / Pressão
Embraiagem - Vários
Fuga de Óleo
Mudança de Óleo
Depois quando escolhece o valor da combobox2 ele iria aparecer o valor correspondende que esta na coluna D
Alguem consegue ajudar com esta duvida.
envio anexo com ficheiro
Obrigado
Re: Combobox relacionadas
Enviado: Dom Set 15, 2019 10:21 am
por Reinaldo
Experimente:
Altere/Inclua a rotina initialize do seu modelo conforme abaixo:
Código: Selecionar todos
Private Sub UserForm_Initialize()
Dim linha As Integer
linha = 2
'Inclui na comoboox1 os valores na coluna "A" da planilha "Folha1"
For linha = 2 To Range("A1").End(xlDown).Row
ComboBox1.AddItem Folha1.Cells(linha, 1)
Next
End Sub
Altere/inclua a rotina Change do Combobox1 conforme abaixo:
Código: Selecionar todos
Private Sub ComboBox1_Change()
Dim x As Integer, i As Integer
'Limpa os dados ca Combobox2
ComboBox2.Clear
i = 0
'Popula a combobox2 para itens iguais ao valor na combobox1
For x = 2 To Range("B1").End(xlDown).Row
If ComboBox1.Value = Folha1.Cells(x, 2).Value Then 'Se for igual
ComboBox2.AddItem
ComboBox2.List(i, 0) = Folha1.Cells(x, 3).Value 'Acrescenta na combo
ComboBox2.List(i, 1) = x 'Acrescenta a referencia a linha onde está o registro Coluna Oculta
i = i + 1
End If
Next
End Sub
Alter/inclua a rotina change no combobox2:
Código: Selecionar todos
Private Sub ComboBox2_Change()
Me.TextBox1.Text = Folha1.Cells(ComboBox2.List(ComboBox2.ListIndex, 1), 4).Value 'Utiliza o valor da coluna oculta para trazer o valor dalinha coluna D
End Sub
Re: Combobox relacionadas
Enviado: Seg Set 16, 2019 8:53 pm
por pedro_mexico
Boa Noite Reinaldo.
antes demais, obrigado pelos codigos, era mesmo isso que eu queria.
Obrigado.
mas fiz o teste no ficheiro que enviei, e depois adaptei tambem ao ficheiro maior, e acontece nos dois a mesma coisa que é:
quando selecciono a combobox1, ele dá os valores da coluna A, mas em alguns valores ele na combobox 2 nao apresenta nenhum valor, e em outros valores ele da erro que vai na imagem em anexo.
Re: Combobox relacionadas
Enviado: Ter Set 17, 2019 7:42 am
por Reinaldo
Nãoconsigo ler a mensagem de erro, contudo experimente:
Altere a rotina ComboBox2_Change conforme abaixo:
Código: Selecionar todos
Private Sub ComboBox2_Change()
If ComboBox2.Value = "" Then
TextBox1.Text = ""
Exit Sub
End If
TextBox1.Text = Folha1.Cells(ComboBox2.List(ComboBox2.ListIndex, 1), 4).Value 'Utiliza o valor da coluna oculta para trazer o valor dalinha coluna D
End Sub
Re: Combobox relacionadas
Enviado: Ter Set 17, 2019 5:13 pm
por pedro_mexico
Boa noite amigo Reinaldo.
o codigo que enviou já da correto no ficheiro que coloquei na publicaçao,
mas nao encontro razao logica para ao transpor para o verdadeiro formulario ele chega ao " Motor (A9)" "Peritagem(A10)" "Pneus(A11)" e por ai fora e na combobox 2 nao aparece a listagem correspondente.
ja troquei no meu formulario original os nomes das comboboxs para ficar iguak ao ficheiro e aos codigos que enviou, mas chega a meio da linha "A" para baixo e os codigos correspondentes nao passam para a combobo2
Re: Combobox relacionadas
Enviado: Ter Set 17, 2019 10:24 pm
por Reinaldo
Primeiramente verifique se a descrição existente na coluna "A" corresponde a descrição existente na coluna "B", se houver algum caractere diferente esse "registro" não irá funcionar;
caso não seja isso e sem poder acompanhar/ver o o que ocorre, pelo menos para mim,não é possível entender/propor solução.
Re: Combobox relacionadas
Enviado: Qua Set 18, 2019 3:57 pm
por pedro_mexico
Amigo Reinaldo.
segue o ficheiro.
estranho, se colocar no ficheiro que so tem esse codigo da correctamente, se copiar para o meu, chega a metade dos valores e depois nao aparece nada na combobox2, mesmo estranho, ja tentei mudar as linhas e colunas mas dá no mesmo.
Re: Combobox relacionadas
Enviado: Seg Set 30, 2019 5:12 am
por Reinaldo
Muito provavelmente o "erro" ocorre quando a planilha/folha ativa ser outra que não a folha15.
Experimente:
para a comobox1
Código: Selecionar todos
Dim linha As Integer
linha = 2
'Inclui na comoboox1 os valores na coluna "A" da planilha "Folha15"
With Sheets("Cod.Manutencoes")
For linha = 2 To .Range("A1").End(xlDown).Row
ComboBox1.AddItem .Cells(linha, 1)
Next
End With
Para combobox2
Código: Selecionar todos
Private Sub ComboBox1_Change()
Dim x As Integer, i As Integer
'Limpa os dados ca Combobox2
Combobox2.Clear
i = 0
'Popula a combobox2 para itens iguais ao valor na combobox1
With Sheets("Cod.Manutencoes") 'aqui determina "ler" na folha15
For x = 2 To .Range("B1").End(xlDown).Row
If ComboBox1.Value = .Cells(x, 2).Value Then 'Se for igual
Combobox2.AddItem
Combobox2.List(i, 0) = .Cells(x, 3).Value 'Acrescenta na combo
Combobox2.List(i, 1) = x 'Acrescenta a referencia a linha onde está o registro Coluna Oculta
i = i + 1
End If
Next
End With
End Sub
Re: Combobox relacionadas
Enviado: Seg Set 30, 2019 5:33 am
por Reinaldo
Para utilizar a planilha "dados" conforme sua MP, deve alterar o endereçamento da planilha ("Dados " ou Folha5) e coluna (conbteuro nas colunas S/T/U/V):
Preencher Combobox1
Código: Selecionar todos
'Inclui na comoboox1 os valores na coluna "S" da planilha "Dados5"
With Sheets("Dados ")
For linha = 2 To .Range("S1").End(xlDown).Row
ComboBox1.AddItem .Cells(linha, "S")
Next
End With
Preencher Combobox2
Código: Selecionar todos
Private Sub ComboBox1_Change()
Dim x As Integer, i As Integer
'Limpa os dados ca Combobox2
Combobox2.Clear
i = 0
'Popula a combobox2 para itens iguais ao valor na combobox1
With Sheets("Dados ")
For x = 2 To .Range("T1").End(xlDown).Row
If ComboBox1.Value = .Cells(x, "T").Value Then 'Se for igual
Combobox2.AddItem
Combobox2.List(i, 0) = .Cells(x, "U").Value 'Acrescenta na combo
Combobox2.List(i, 1) = x 'Acrescenta a referencia a linha onde está o registro Coluna Oculta
i = i + 1
End If
Next
End With
End Sub
Preencher TextBox
Código: Selecionar todos
Private Sub ComboBox2_Change()
If Combobox2.Value = "" Then
TextBox_1.Text = ""
Exit Sub
End If
TextBox_1.Text = Folha5.Cells(Combobox2.List(Combobox2.ListIndex, 1), "V").Value 'Utiliza o valor da coluna oculta para trazer o valor dalinha coluna D
End Sub
Re: Combobox relacionadas
Enviado: Ter Out 01, 2019 8:46 pm
por pedro_mexico
Reinaldo, boa noite.
Muito obrigado, o codigo esta a funcionar bem.
Obrigado