Problema para añadir datos a un Combo vinculado a otro Combo
Tengo un problema con este código VBA. Tengo 2 ComboBox. El primero lo relleno recorriendo una rango en otra hoja y evitando los duplicados. El otro ComboBox hago lo mismo, pero quiero que solo se rellene teniendo en cuenta los datos que utilizo que están en la columna de al lado de donde cojo los de Combo y que sean iguales al ComboBox1. De momento los datos del ComboBox1 se sacan de la columna "G" y los del ComboBox2 de la columna "H", sin tener en cuenta su vinculación.
Código ComboBox1
Sub LlenarComboBox1() Application.ScreenUpdating = False Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False ' Dim rango As Range Set a = Sheets("Listado OT") Set k = Sheets("AnalisisCUEX") ' k.ComboBox1.Clear For Each celda In a.Range("G5:G" & a.Range("G65000").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) k.ComboBox1.AddItem valores(x) Next k.Range("A1").Select '+++ ahora ordenamos el combo ++++++++++++++++++++++ Set lista = CreateObject("System.Collections.ArrayList") For x = 0 To k.ComboBox1.ListCount - 1 lista.Add k.ComboBox1.List(x) Next lista.Sort k.ComboBox1.Clear For Each Z In lista k.ComboBox1.AddItem Z Next ' Application.ScreenUpdating = True Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True Application.CutCopyMode = False End Sub
Código del ComboBox2
Sub LlenarComboBox2() Application.ScreenUpdating = False Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False ' Dim rango As Range Set a = Sheets("Listado OT") Set k = Sheets("AnalisisCUEX") ' k.ComboBox2.Clear For Each celda In a.Range("H5:H" & a.Range("H65000").End(xlUp).Row) If InStr(valores1, celda) = 0 Then valores1 = valores1 & "," & celda.Value End If Next valores1 = Mid(valores1, 2, Len(valores1) - 1) valores1 = Split(valores1, ",") For x = 0 To UBound(valores1) k.ComboBox2.AddItem valores1(x) Next k.Range("A1").Select ' Application.ScreenUpdating = True Application.EnableEvents = True ActiveSheet.DisplayPageBreaks = True Application.CutCopyMode = False End Sub
1 Respuesta
Respuesta de James Bond
1