Notifications
Clear all

Remover Duplicados Listbox

6 Posts
2 Usuários
0 Reactions
2,511 Visualizações
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Boa Tarde Pessoal;

Será que poderiam ajudar-me a remover os itens duplicados do meu listbox?
Deixo em ordem alfabética seria fantástico também!

Segue arquivo para ajuda!

Obrigado

 
Postado : 30/03/2017 11:07 am
(@mprudencio)
Posts: 2749
Famed Member
 

Eu usaria uma segunda tabela com a lista dos descritivos e carregaria uma combobox no formulario para preencher a planilha.

Simples e de facil atualização.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 30/03/2017 11:41 am
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Tem como fazer direto?

 
Postado : 30/03/2017 11:44 am
(@mprudencio)
Posts: 2749
Famed Member
 

Ate da pra fazer direto mas neste caso se precisar inserir outra descriçao vai precisar editar o codigo por isso a lista.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 30/03/2017 3:59 pm
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Prudencio, obrigado pelo retorno!
Achei o código abaixo no site do Tomas, agora preciso adaptar a minha planilha! Se puder ajudar! Vou tentando aqui!

Obrigado

Private Sub UserForm_Initialize()
    Dim MyUniqueList As Variant, i As Long
    With Me.ListBox1
        .Clear    ' limpa o conteúdo do listbox
        MyUniqueList = UniqueItemList(Range("A1:A30"), True)
        For i = 1 To UBound(MyUniqueList)
            .AddItem MyUniqueList(i)
        Next i
        .ListIndex = 0    ' seleciona o primeiro item
    End With
End Sub
 
Private Function UniqueItemList(InputRange As Range, _
                                HorizontalList As Boolean) As Variant
    Dim cl As Range, cUnique As New Collection, i As Long, uList() As Variant
    Application.Volatile
    On Error Resume Next
    For Each cl In InputRange
        If cl.Formula <> "" Then
            cUnique.Add cl.Value, CStr(cl.Value)
        End If
    Next cl
    UniqueItemList = ""
    If cUnique.Count > 0 Then
        ReDim uList(1 To cUnique.Count)
        For i = 1 To cUnique.Count
            uList(i) = cUnique(i)
        Next i
        UniqueItemList = uList
        If Not HorizontalList Then
            UniqueItemList = _
            Application.WorksheetFunction.Transpose(UniqueItemList)
        End If
    End If
    On Error GoTo 0
End Function
 
Postado : 31/03/2017 4:20 am
(@romanholi)
Posts: 177
Estimable Member
Topic starter
 

Sub Retira_Repetidos()
Dim QtdeLinhas, x, z As Integer

QtdeLinhas = Lst_Historico.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 Lst_Historico.List(x) = Lst_Historico.List(z) Then
Lst_Historico.RemoveItem (z)
QtdeLinhas = QtdeLinhas - 1
End If
End If
Next z
Next x

End Sub

 
Postado : 31/03/2017 8:25 am