Evitar repetição em...
 
Notifications
Clear all

Evitar repetição em ComboBox

3 Posts
3 Usuários
0 Reactions
1,561 Visualizações
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Bom dia a todos

Tenho uma lista de dados numa planilha que podem ter os seguintes Status: Programado, Concluído, Em Espera, Em Atraso, e se a diretoria quiser poderão ser criados mais tipos de Status.

Criei um Userform para navegar por estas ordens de serviço que estão nesta planilha "Dados".
Criei uma ComboBox para filtrar pelo Status e quero que quando o Userform inicializar as possibilidades de Status que estão na coluna 'A' sejam carregadas porém, sem repetição (O que está acontecendo é que aparesem Programado, Programado, Concluído,Concluído,Concluído,Em Espera, Em Atraso pois existem mais de uma OS com cada Status)

Achei um tutorial usando If Not ComboBox.exists(valor) porém, não deu certo

Private Sub UserForm_Initialize()
    Dim line, firstLine, lastLine As Integer: firstLine = 2
    Dim cell As Range

    lastLine = ThisWorkbook.Worksheets("Dados").Range("C2").End(xlDown).Row
    
    With ControlForm.ComboBox1
        For Each cell In ThisWorkbook.Worksheets("Dados").Range("A" & firstLine & ":A" & lastLine)
'            If Not .exists(cell.Value) Then
                .AddItem cell.Value
'            End If
        Next cell
    End With

End Sub

Alguém por gentileza tem uma ideia de como não adicionar itens repetidos em um ComboBox?

 
Postado : 23/08/2017 8:24 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

gilbertjrs,

Boa tarde!

Faça as devidas adaptações à sua necessidade.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 23/08/2017 9:17 am
(@avgsantos)
Posts: 28
Eminent Member
 

Boa noite, gilbertjrs

Temos mais uma opção para remover itens repetidos, utilizar o código abaixo.

Sub Remove_Repetido_Nome()
Application.ScreenUpdating = False
Dim Linhas As Integer
Dim W As Worksheet
Dim Verifica_Repetidos As Integer
Dim Numero_item1 As Integer
Dim Numero_item2 As Integer

Set W = Sheets("Dados")
W.Select
linha = 3

Me.ComboBox1.Text = ""
Me.ComboBox1.Clear

With W

Do Until Cells(linha, 1) = ""
ComboBox1.AddItem Cells(linha, 4)

linha = linha + 1
Loop


End With

' codigo para eliminar repetidos

For Verifica_Repetidos = 0 To 5

    For Numero_item1 = 0 To ComboBox1.ListCount - 1
    For Numero_item2 = 0 To ComboBox1.ListCount - 1
       If Numero_item1 > ComboBox1.ListCount - 1 Or Numero_item2 > ComboBox1.ListCount - 1 Then
       Exit For
       Else
         If Numero_item1 <> Numero_item2 Then
             If ComboBox1.List(Numero_item1) = ComboBox1.List(Numero_item2) Then
                ComboBox1.RemoveItem (Numero_item2)
             Else
            End If
          End If
        End If
     Next Numero_item2
   Next Numero_item1

Next Verifica_Repetidos

Application.ScreenUpdating = True

End Sub

Grato
avgsantos
 
Postado : 25/08/2017 6:19 pm