Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Dúvida ComboBox

Dúvidas gerais sobre Excel
Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Dúvida ComboBox

Mensagem por webmaster »

Enviado por Jefferson Gustavo Capelli
Boa tarde, se possivel gostaria de uma colaboração, sempre estou acessando o site de vcs, é sempre de grande valia...

TEnho um form no VBA pelo excel, nele tenho o combobox1 que traz as opções do plan1 coluna a e tenho o combobox2 que traz da coluna b... a duvida...

Como faço para que as informações do combobox2 sejam somente de acordo com a escolha do combobox2???
ex..

COL A COL B
1 a
2 b
3 c
4 d

se selecionar 1 no combobox1, automaticamente o combobox2 traga somente a opção relativa, no caso "a".

Obrigado,


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Dúvida ComboBox

Mensagem por webmaster »

Jefferson,

Fiz um teste rápido. Criei um UserForm e adicionei 2 comboBox nele. Em seguida, adicionei o seguinte código:

Código: Selecionar todos

Private Sub ComboBox1_Change()
    Me.ComboBox2.ListIndex = Me.ComboBox1.ListIndex
End Sub

Private Sub UserForm_Initialize()
    For i = 1 To 10
        Me.ComboBox1.AddItem i
        Me.ComboBox2.AddItem i * 10
    Next i
End Sub
Execute o Form (F5) e troque os valores do comboBox1. Veja que o índice correspondente (ou seja, o valor multiplicado por 10 como pode ser visto no código) é selecionado no comboBox2. Altere o UserForm_Initialize para carregar os valores da sua planilha nos comboBox. Aviso somente que para que o código funcione, os índices (ordem) das duas listas precisam ser equivalentes. A quantidade também deve ser igual. Se houver mais itens na lista 1 do que na lista 2, o código gerará um erro.

Abraços


jgcapelli
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Ago 11, 2009 9:03 am

Re: Dúvida ComboBox

Mensagem por jgcapelli »

pois entao.... e no caso do seguinte.... tenho form com combo1 e combo2, as informacoes do combo1 vem da plan1!a1:a5 e do combo2 da plan1!d1:d500...

Exemplo... tenho um cadastro de produtos quimicos, no combo1 me da opcao de INSETICIDA, FORMICIDA, HERBICIDA e etc... e no combo2 o PRODUTO...

Minha duvida, como, ao escolher por exemplo INSETICIDA no combo1, o combo2 me de apenas as opcoes dos produto que são inseticidas...

P.S.: o cadastro do produto na planilha, tem na coluna C sua CLASSIFICACAO (INSETICIDA, HERBICIDA....) e na coluna D o nome do produto.


Obrigado pelas dicas de sempre!!!!


Jefferson


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Dúvida ComboBox

Mensagem por webmaster »

Jefferson,

Seria preciso filtrar o preenchimento do combobox2, ao invés de preenchê-lo informando o range de células. Tente fazê-lo com um laço for ou while. Assim é mais fácil promover o filtro, por exemplo, supondo a estrutura da planilha que propôs e um formulário da mesma forma, coloque o seguinte código:

Código: Selecionar todos

Option Explicit

Private Sub ComboBox1_Change()
    If Me.ComboBox1.ListIndex <> -1 Then
        Dim PlanProdutos As Worksheet
        Dim i As Integer
        Set PlanProdutos = Plan2
        i = 1

        ' limpa o combobox2
        Me.ComboBox2.Clear
        
        With PlanProdutos
            Do Until IsEmpty(.Cells(i, 1))
                ' verifica se o produto é do tipo determinado pelo
                ' valor na coluna C (3)
                If .Cells(i, 3).Value = Me.ComboBox1.List(Me.ComboBox1.ListIndex) Then
                    Me.ComboBox2.AddItem .Cells(i, 1).Value
                End If
                i = i + 1
            Loop
        End With
    End If
End Sub

Private Sub UserForm_Initialize()
    Dim PlanTipo As Worksheet
    Dim i As Integer
    Set PlanTipo = Plan1
    i = 1

    With PlanTipo
        Do Until IsEmpty(.Cells(i, 1))
            Me.ComboBox1.AddItem .Cells(i, 1).Value
            i = i + 1
        Loop
    End With
End Sub
Deve resolver. O arquivo anexo possui o exemplo completo.

Abraços
Anexos
DuploComboBox.zip
Exemplo de preenchimento de combobox com dependência de outro combobox
(12.34 KiB) Baixado 377 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


jgcapelli
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Ago 11, 2009 9:03 am

Re: Dúvida ComboBox

Mensagem por jgcapelli »

opa.. certinho... valeu mesmo!!!!

PS.: E caso troque o combobox2 por um TextBox, como ficaria?


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Dúvida ComboBox

Mensagem por webmaster »

Jefferson,

Não ficaria, já que não se trata de um controle de lista certo? Caso mais de um item correspondesse ao filtro, como ficaria no textbox?

Abraços


jgcapelli
Acabou de chegar
Acabou de chegar
Mensagens: 6
Registrado em: Ter Ago 11, 2009 9:03 am

Re: Dúvida ComboBox

Mensagem por jgcapelli »

exato, expressei errado...

Exemplo, tneho a opção na coluna a, EMPRESA, na coluna b, CNPJ, na coluna C, MUNICIPIO e etc... ao selecionar a empresa num combo, automaticamente trazer as informações referente a esta empresa num text.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Dúvida ComboBox

Mensagem por webmaster »

Jefferson,

Nesse caso, dê uma olhada nestes links:

http://www.tomasvasquez.com.br/blog/mod ... soft-excel
http://www.tomasvasquez.com.br/blog/mic ... sa-parte-2

A idéia é parecida.

Abraços


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder