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 SubCó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


