Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Combobox sem duplicar dados [RESOLVIDO]
Combobox sem duplicar dados [RESOLVIDO]
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?
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.
Re: Combobox sem duplicar dados
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
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
Re: Combobox sem duplicar dados
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?
Mesmo dando muito trabalho eu só preciso dessas combos sem repetição pra finalizar a planilha. Será q é possível alguém me ajudar?
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Combobox sem duplicar dados
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.
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.
Re: Combobox sem duplicar dados
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?
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?
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Combobox sem duplicar dados
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.
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.
Re: Combobox sem duplicar dados
Legal!
Vou isolar apenas a parte que preciso, pois a planilha é enorme e lhe envio.
Vou isolar apenas a parte que preciso, pois a planilha é enorme e lhe envio.
Re: Combobox sem duplicar dados
Boa noite Mikel!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.
Enviei a planilha de teste pro e-mail que estava em sua assinatura!
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Combobox sem duplicar dados
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:
Para o preenchimento do ComboBox com os Fornecedores, por exemplo, você esta utilizando o comando abaixo:
Para conseguir utilizar a função, será necessário inserir um bloco IF, antes da linha de comando ComboBox10.AddItem, conforme abaixo:
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.
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
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
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
Teste e nos retorne com o resultado.
Abraços.