cargar segundo combobox con datos unicos

2 envíos / 0 nuevos
Último envío
ricardo.yah
Imagen de ricardo.yah
Offline
última acción: Hace 2 semanas 3 días
alta: 24/10/2018 - 04:12
Puntos: 25
cargar segundo combobox con datos unicos

Hola, espero que alguien pueda ayudarme tengo varios dias tratando de hacer los siguiente:

en mi libro de excel tengo en la columna A el numero de sucursal de tienda por ejemplo: 502060 y en la columna B el numero de Articulo 502060001 logicamente es repetetivo x numero de veces. he logrado hacer que mi sucursal se cargue en un primer combobox obviamente sin registros duplicados ya que como dije antes puedes ser 502060, 502061, 502062, etc, el problema es para lograr cargar el segundo combo, con este codigo he logrado cargar y relacionar de cierta forma el primero con el segundo, el problema es que no encuentro la manera de hacerlos unicos, les dejos el codigo:

 

Private Sub ComboBox1_Change()

Dim Fila As Integer

Dim Final As Integer

 

Sheets("Principal").ComboBox2.Clear

id_sucursal = Sheets("Principal").ComboBox1.Value

With Datos 

Final = Sheets("Datos").Cells(2, 5).End(xlDown).Row

For Fila = 2 To Final

If Mid(Sheets("Datos").Cells(Fila, 5), 1, 8) = id_sucursal Then

Sheets("Principal").ComboBox2.AddItem (Sheets("Datos").Cells(Fila, 5))

End If

Next

    End With

End Sub

espero que alguien pueda ayudarme, se lo voy a agradecer enormemente

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 hora 21 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 9595
Básicamente, para añadir

Básicamente, para añadir elementos únicos al comobox, lo que hay que hacer es comprobar todos los elementos que ya tienes en tu combo, antes de añadir uno nuevo, para comprobar si ya lo tienes o no.

el tema sería hacer un bucle por tu combo y compararlo con el nuevo valor que quieres añadir.
Si coincide alguno, hemos terminado, está ya en la lista.
Si no coincide ninguno, eso quiere decir que es un valor nuevo y lo tienes que añadir.

Aquí he encontrado un ejemplo para hacer esto https://stackoverflow.com/questions/12452026/populating-combobox-with-un...

en el ejemplo de esa página crea una función para comprobar el valor nuevo y añadirlo al combobox

he cambiado el nombre a la función

 

PublicSub AgregaSiUnico(CB As msforms.ComboBox, nuevovalor AsString)
 If CB.ListCount =0 Then GoTo AgregarValor
 Dim i As Integer
 For i =0 To CB.ListCount -1
 If CB.List(i)= nuevovalor Then Exit Sub
 Next
AgregarValor: 
 CB.AddItem nuevovalor 
End Sub


 

Data Tools Suite
datos y tablas con Excel