Notifications
Clear all

Dados repetidos listindex combobox

6 Posts
2 Usuários
0 Reactions
1,806 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal, bom sabadão a todos!

É o seguinte, possuo uma userform de pesquisa, a qual possui dois combobox combinados.

O primeiro combo (ComboBoxCentrodecusto), é carregado de acordo com os dados cadastrados na plan1, enquanto os itens do combobox2 (ComboBoxContaRazão) são oriundos da plan2.

O que acontece é que, por exemplo, se eu selecionar Alimentação no ComboBoxCentrodecusto, o ComboBoxContaRazão carrega todos itens referentes a Alimentação ex: Restaurante, pizzaria, supermercado etc. Mas, tendo em vista que existe vários restaurantes cadastrado, o ComboBoxContaRazão apresenta vários dados repetidos:
Ex:
Pizzaria
Restaurante
Restaurante
Supermercado
Restaurante

Eu preciso que esses dados não se repitam! Eu utilizo o código abaixo:

Private Sub ComboBoxCentrodecusto_Change()

If Me.ComboBoxCentrodecusto.ListIndex <> -1 Then
Call CarregaProdutos(Me.ComboBoxCentrodecusto.List(Me.ComboBoxCentrodecusto.ListIndex))

end if

end sub

Private Sub CarregaProdutos(ByVal Categoria As String)
Dim linha As Integer, colunaProduto As Integer, colunaCategoria As Integer
linha = 2

ComboBoxContaRazão.Clear

colunaProduto = 1
colunaCategoria = 2

With Sheets("Produtos")
Do While Not IsEmpty(.Cells(linha, colunaProduto))
If .Cells(linha, colunaCategoria).Value = Categoria Then
Me.ComboBoxContaRazão.AddItem .Cells(linha, colunaProduto).Value
End If
linha = linha + 1
Loop
End With

end sub

 
Postado : 17/08/2013 9:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilize objeto do tipo Collection, de uma olhada nos links abaixo :

Como cascatear 3 ComboBox ?????
viewtopic.php?f=10&t=748

textbox exibir valor referente ao item do combobox
http://www.tomasvasquez.com.br/forum/vi ... hDx9dLBO2R

[]s

 
Postado : 17/08/2013 10:13 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

Agradeço pela sua atenção, mas infelizmente os exemplos nesses link estão corrompidos =/

Existe outro modo de vc ajudar-me? Tipo, mostrar aqui nesse tópico um código que possibilita-me cascatear três combobox??

 
Postado : 17/08/2013 11:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Use a pesquisa do fórum!!
Talvez isso te ajuda...
viewtopic.php?f=21&t=6317

Att

 
Postado : 17/08/2013 12:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, para não ter de fazer outros ajustes uma vez que não tenho o seu arquivo e vendo que estas rotinas são de um arquivo chamado ComboBoxEncadeado.xls baixado do Forum do Tomaz, resolvi postar uma rotina que elimina os dados duplicados, podendo ser utilizado em ListBox tambem, então faça o seguinte :

Acrescente a rotina abaixo :

Sub Retira_Repetidos()
 Dim QtdeLinhas, x, z As Integer
 
 QtdeLinhas = ComboBoxContaRazão.ListCount - 1

  For x = 0 To QtdeLinhas
    For z = 0 To QtdeLinhas
        If x <> z Then
            If z > QtdeLinhas Or x > QtdeLinhas Then Exit For
            If ComboBoxContaRazão.List(x) = ComboBoxContaRazão.List(z) Then
                ComboBoxContaRazão.RemoveItem (z)
                QtdeLinhas = QtdeLinhas - 1
            End If
        End If
    Next z
  Next x
  
End Sub

Depois, no final da rotina :
Private Sub CarregaProdutos(ByVal Categoria As String)
.......
..........
.............
..................

'Logo apos esta linha
End With

Adicione a chamada para a rotina que irá retirar os repetidos.
Call Retira_Repetidos

End Sub

Faça os testes e veja se é isto.

[]s

 
Postado : 17/08/2013 3:35 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro, bom dia!

Agradeço por sua ajuda!! O excel funcionou perfeitamente!!!!!!!

Sei que você é capaz de resover esse o tópico abaixo:

viewtopic.php?f=20&t=8942

Por favor cara! preciso mt disso!!!

 
Postado : 19/08/2013 7:01 am