Mostrar datos únicos en un combobox
Hola
Mi problema es el siguiente lleno un combo a partir de la elección de otro es decir es dependiente, me lo llena bien, el problema es que quiero que solo me arroje los datos únicos es decir que no estén repetidos, eso lo hago en mi combo1 pero en el combo2 no he podido hacer que me muestre solo los únicos, lo intente hacer como en el combo1 pero me da hasta los que no están visibles espero me puedan ayudar, aquí les dejo mi código
Private Sub ComboBox1_Enter()
On Error Resume NextApplication.ScreenUpdating = False
ComboBox1.Clear
Hoja1Select
Range("H2").Select
'Llenamos el combo con los datos del combobox1'para lo cual supondremos que los datos de cada'hoja están a partir desde H1 hacia abajo, y'hasta encontrar una fila vacía
Do While Not IsEmpty(ActiveCell)
'si el dato no está repetido, lo añadimos 'a la variable "datos", separando los 'elementos por comas
If InStr(datos, ActiveCell) = 0 Then
'añadimos el dato
datos = datos & "," & ActiveCell
End If
'bajamos una fila
ActiveCell.Offset(1, 0).Select
Loop
'eliminamos la primera coma
datos = Right(datos, Len(datos) - 1)
'separamos cada elemento por la coma
dato_individual = Split(datos, ",")
'recorremos todos los elementos
For i = 0 To UBound(dato_individual)
'Añadimos los elementos
ComboBox1.AddItem dato_individual(i)
Nex
tApplication.ScreenUpdating = True
End Sub
Private Sub ComboBox2_Enter()
On Error ResumeNext
Application.ScreenUpdating = False
ComboBox2.Clear
'Hoja1.Select
hoja_elegida= ComboBox1.List(ComboBox1.ListIndex)ActiveSheet.Range("$E1:$ED6074").AutoFilter Field:=8, Criteria1:=hoja_elegida
Dim rngAux As Range
Dim rngCelda As Range
Range("E2").Select
Range(Selection, Selection.End(xlDown)).Select
Set rngAux = Selection.SpecialCells(xlCellTypeVisible).Rows
For Each rngCelda In rngAux
ComboBox2.AddItem rngCelda
Next rngCeldaSet rngAux = Nothing
Set rngCelda = Nothing
Application.ScreenUpdating = True
End Sub
Mi problema es el siguiente lleno un combo a partir de la elección de otro es decir es dependiente, me lo llena bien, el problema es que quiero que solo me arroje los datos únicos es decir que no estén repetidos, eso lo hago en mi combo1 pero en el combo2 no he podido hacer que me muestre solo los únicos, lo intente hacer como en el combo1 pero me da hasta los que no están visibles espero me puedan ayudar, aquí les dejo mi código
Private Sub ComboBox1_Enter()
On Error Resume NextApplication.ScreenUpdating = False
ComboBox1.Clear
Hoja1Select
Range("H2").Select
'Llenamos el combo con los datos del combobox1'para lo cual supondremos que los datos de cada'hoja están a partir desde H1 hacia abajo, y'hasta encontrar una fila vacía
Do While Not IsEmpty(ActiveCell)
'si el dato no está repetido, lo añadimos 'a la variable "datos", separando los 'elementos por comas
If InStr(datos, ActiveCell) = 0 Then
'añadimos el dato
datos = datos & "," & ActiveCell
End If
'bajamos una fila
ActiveCell.Offset(1, 0).Select
Loop
'eliminamos la primera coma
datos = Right(datos, Len(datos) - 1)
'separamos cada elemento por la coma
dato_individual = Split(datos, ",")
'recorremos todos los elementos
For i = 0 To UBound(dato_individual)
'Añadimos los elementos
ComboBox1.AddItem dato_individual(i)
Nex
tApplication.ScreenUpdating = True
End Sub
Private Sub ComboBox2_Enter()
On Error ResumeNext
Application.ScreenUpdating = False
ComboBox2.Clear
'Hoja1.Select
hoja_elegida= ComboBox1.List(ComboBox1.ListIndex)ActiveSheet.Range("$E1:$ED6074").AutoFilter Field:=8, Criteria1:=hoja_elegida
Dim rngAux As Range
Dim rngCelda As Range
Range("E2").Select
Range(Selection, Selection.End(xlDown)).Select
Set rngAux = Selection.SpecialCells(xlCellTypeVisible).Rows
For Each rngCelda In rngAux
ComboBox2.AddItem rngCelda
Next rngCeldaSet rngAux = Nothing
Set rngCelda = Nothing
Application.ScreenUpdating = True
End Sub