Llenar ComboBox desde un userform sin repetidos y en orden de menor a mayor.

Tengo un userform programado, pero quiero saber como hacer para que no me despliegue repetidos, es decir, puedo tener valores duplicados en mi hoja y solo deseo ver mas o menos lo siguiente, columna "C" 601,602,602,603,604,604,604, que solo me muestre lo siguiente 601,602,603,604 y si se puede de una vez los ordene de menor a mayor valor, gracias de antemano.

Private Sub ComboBox1_enter()
Me.ComboBox1.Clear
For Each celda In Range("C2:C" & Range("C" & Rows.Count).End(xlUp).Row)
If celda <> Empty Then ComboBox1.AddItem celda.Value
Next
End Sub

Este es el código que tengo programado.

1 Respuesta

Respuesta
6

Te mando la macro que necesitas:

En mi caso he utilizado el evento initialize para cargar el combo al iniciar el form

Private Sub UserForm_Initialize()
'por luismondelo
For Each celda In Range("c2:c" & Range("c65000").End(xlUp).Row)
If InStr(valores, celda) = 0 Then
valores = valores & "," & celda.Value
End If
Next
valores = Mid(valores, 2, Len(valores) - 1)
valores = Split(valores, ",")
For x = 0 To UBound(valores)
ComboBox1.AddItem valores(x)
Next

recuerda finalizar

Muchas gracias por tu respuesta, si me funciona, podría pedirte un favor mas?, hay manera de que la los valores que muestra estén en orden de menor a mayor? gracias de nuevo.

Te mando la solución. Ahora la macro quedaría así:

Private Sub UserForm_Initialize()
'por luismondelo
For Each celda In Range("c2:c" & Range("c65000").End(xlUp).Row)
If InStr(valores, celda) = 0 Then
valores = valores & "," & celda.Value
End If
Next
valores = Mid(valores, 2, Len(valores) - 1)
valores = Split(valores, ",")
For x = 0 To UBound(valores)
ComboBox1.AddItem valores(x)
Next
'+++ ahora ordenamos el combo ++++++++++++++++++++++
Set lista = CreateObject("System.Collections.ArrayList")
For x = 0 To ComboBox1.ListCount - 1
lista.Add ComboBox1.List(x)
Next
lista.Sort
ComboBox1.Clear
For Each k In lista
ComboBox1.AddItem k
'Debug.Print k
Next
End Sub

recuerda finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas