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

Combobox sem duplicar dados [RESOLVIDO]

Dúvidas gerais sobre Excel
FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Combobox sem duplicar dados [RESOLVIDO]

Mensagem por FDWX »

Olá!

Sou muito leigo em VBA e só sei fazer macros simples, por isso fiquei emperrado na situação abaixo:

Tenho uma macro enorme e preciso preencher algumas combos sem repetir, vou colocar apenas um pequeno trecho, pois imagino que resolvendo esse o mesmo se aplica para os demais. No caso abaixo preciso preencher o combobox13 sem repetir os dados:

Application.ScreenUpdating = False
Sheets("Prod").Visible = True
Sheets("Prod").Select
Range("C2").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Offset(0, 1).Value = ComboBox10.Value And ActiveCell.Offset(0, 3).Value = ComboBox11.Value Then
ComboBox13.AddItem (ActiveCell.Offset(0, 14).Value)
End If
ActiveCell.Offset(1, 0).Select
Loop
Sheets("Prod").Visible = False
Application.ScreenUpdating = True


Podem me ajudar?
Editado pela última vez por FDWX em Qui Abr 14, 2016 4:27 pm, em um total de 1 vez.


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: Combobox sem duplicar dados

Mensagem por webmaster »

FDWX,

Da bastante trabalho fazer isso no VBA. Uma vez feito, ok, mas, ja que tem familiaridade com as macros, sugiro que use-a para extrair uma lista de dados unicos pelo Excel mesmo e depois preencha o combo. Vai ser bem mais simples de resolver seu problema.

Att


FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Re: Combobox sem duplicar dados

Mensagem por FDWX »

Mas na planilha que estou montando esse é o único jeito, pois a base de dados no excel é muito grande e cada item tem várias repetições.

Mesmo dando muito trabalho eu só preciso dessas combos sem repetição pra finalizar a planilha. Será q é possível alguém me ajudar?


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Combobox sem duplicar dados

Mensagem por Mikel Silveira Fraga »

Boa tarde a todos.

FDWX e Tómas, de uma olhada no link abaixo.
- [MODELO] Verificação Duplicidade ao Carregar ComboBox e ListBox

Dúvidas, a disposição.

Um excelente final de semana para todos.


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.


FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Re: Combobox sem duplicar dados

Mensagem por FDWX »

Obrigado Mikel!

Entretanto, eu não tenho conhecimentos de VBA pra adaptar a macro acima (do meu primeiro post) neste arquivo que você enviou.

Consegue me dar algum auxilio nesse sentido?


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Combobox sem duplicar dados

Mensagem por Mikel Silveira Fraga »

FDWX, boa tarde.

Cara, para conseguir lhe ajudar com a adaptação desse código, preciso do modelo da sua planilha. Dessa forma, consigo realizar uma análise sobre toda a estrutura da mesma, e assim adaptar o código pra ti.

Fico no aguardo.


FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Re: Combobox sem duplicar dados

Mensagem por FDWX »

Legal!

Vou isolar apenas a parte que preciso, pois a planilha é enorme e lhe envio.


FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Re: Combobox sem duplicar dados

Mensagem por FDWX »

Mikel Silveira Fraga escreveu:FDWX, boa tarde.

Cara, para conseguir lhe ajudar com a adaptação desse código, preciso do modelo da sua planilha. Dessa forma, consigo realizar uma análise sobre toda a estrutura da mesma, e assim adaptar o código pra ti.

Fico no aguardo.
Boa noite Mikel!

Enviei a planilha de teste pro e-mail que estava em sua assinatura!


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Combobox sem duplicar dados

Mensagem por Mikel Silveira Fraga »

FDWX, boa tarde.

Abri seu modelo agora e segue as orientações para que você possa organizar a planilha.

Antes de iniciarmos, é preciso inserir em um módulo, a função que realiza a verificação da existência de duplicidade do ComboBox. Segue abaixo o código, sendo este o mesmo do exemplo postado anteriormente:

Código: Selecionar todos

Public Function VerificaDuplicidade(ByRef ctrlList As MSForms.Control, _
                                    ByVal strValor As String) As Boolean

    Dim intList As Integer
    
    VerificaDuplicidade = False
    
    With ctrlList
        
        For intList = 0 To .ListCount - 1
        
            If VBA.LCase(VBA.Trim(.List(intList, 0))) = _
                VBA.LCase(VBA.Trim(strValor)) Then
            
                VerificaDuplicidade = True
                Exit Function
                
            End If
        
        Next intList
    
    End With
    
End Function
Para o preenchimento do ComboBox com os Fornecedores, por exemplo, você esta utilizando o comando abaixo:

Código: Selecionar todos

Sheets("Forn").Visible = True
Sheets("Forn").Select
Range("a2").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> "" And ActiveCell.Value <> "xxx" Then
ComboBox10.AddItem (ActiveCell.Value)
End If
ActiveCell.Offset(1, 0).Select
Loop
Para conseguir utilizar a função, será necessário inserir um bloco IF, antes da linha de comando ComboBox10.AddItem, conforme abaixo:

Código: Selecionar todos

Sheets("Forn").Visible = True
Sheets("Forn").Select
Range("a2").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> "" And ActiveCell.Value <> "xxx" Then
If Not VerificaDuplicidade(Me.ComboBox10, ActiveCell.Value) Then 'Iniciamos um novo bloco IF, que testa a função VerificaDuplicidade.
ComboBox10.AddItem (ActiveCell.Value)
End If ' Aqui estamos encerrando esse novo bloco IF.
End If
ActiveCell.Offset(1, 0).Select
Loop
Dessa forma, antes da inclusão de um novo valor no ComboBox, será feita uma checagem se já existe o mesmo valor em outra linha da lista. Caso exista, não será feita a inclusão da informação.

Teste e nos retorne com o resultado.

Abraços.


FDWX
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qui Abr 07, 2016 10:06 am

Re: Combobox sem duplicar dados

Mensagem por FDWX »

Obrigado!

Vou testar e lhe retorno até o fim do dia!


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