Dato único en combo dependiente

DAM quisiera una ayuda con esta macro que facilitaste a un colega, funciona bien el detalle es que el segundo combo carga datos repetidos, ¿sera posible adaptarlo para que también cargue datos únicos?

Gracias.

'***Macro***
'Pone los valores correspondientes en combobox2
'según el valor seleccionado en combobox1
Private Sub ComboBox1_Change()
'Por.Dam
Me.ComboBox2.Clear
    datos = ComboBox1.Value
    Set hoja = Worksheets("Hoja1")
    ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
    For i = 1 To ufila
        Item = Cells(i, 2)
        If Cells(i, 1) = datos Then
            With Me.ComboBox2
                .AddItem Item 
            End With
        End If
   Next
End Sub
'Pone valores unicos combobox1
Private Sub UserForm_Activate()
'Por.Dam
Dim col As New Collection
    Set hoja = Worksheets("Hoja1")
    ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
    On Error Resume Next
    For i = 1 To ufila
        col.Add Item:=hoja.Cells(i, 1).Value, Key:=CStr(hoja.Cells(i, 1).Value)
    Next i
    For i = 1 To col.Count
        Me.ComboBox1.AddItem col(i)
    Next i
    Me.ComboBox2.Clear
End Sub
'***Macro***

1 respuesta

Respuesta
1

H o l a: Envíame tu archivo y me dices en cuál hoja y en cuáles columnas tienes tus datos. Te adapto un nuevo código que tengo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Juan Fer” y el título de esta pregunta.

OK Dam ya te envié el correo, a la espera de tu sabiduría...gracias

Te anexo la macro actualizada

Private Sub ComboBox1_Change()
    Dim col As New Collection
    Set col = Nothing
    ComboBox2.Clear
    Set hoja = Worksheets("Hoja1")
    On Error Resume Next
    For i = 2 To hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
        If ComboBox1.Value = hoja.Cells(i, "B") Then
            col.Add Item:=hoja.Cells(i, "H").Value, Key:=CStr(hoja.Cells(i, "H").Value)
        End If
    Next
    For i = 1 To col.Count
        ComboBox2.AddItem col(i)
    Next i
    Set col = Nothing
End Sub
'
Private Sub UserForm_Initialize()
    Dim col As New Collection
    Set col = Nothing
    Set hoja = Worksheets("Hoja1")
    ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
    On Error Resume Next
    For i = 2 To ufila
        col.Add Item:=hoja.Cells(i, 2).Value, Key:=CStr(hoja.Cells(i, 2).Value)
    Next i
    For i = 1 To col.Count
        Me.ComboBox1.AddItem col(i)
    Next i
    Me.ComboBox2.Clear
    Set col = Nothing
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas