No cargar datos en ComboBox si se cumple una condición en Formulario VBA Excel.
Para Dante Amor - Hola Dante. Hace pocos días me ayudaste con esta macro:
Dim h1 'Por.Dante Amor Private Sub ComboBox1_Change() Cargar 2 End Sub Private Sub ComboBox2_Change() Cargar 3 End Sub Private Sub ComboBox3_Change() Cargar 4 End Sub Private Sub ComboBox4_Change() Cargar 5 End Sub Private Sub ComboBox5_Change() Cargar 6 End Sub Private Sub ComboBox6_Change() Cargar 7 End Sub Private Sub ComboBox7_Change() End Sub ' Private Sub UserForm_Activate() 'Act.Por.Dante Amor Set h1 = Sheets("Equipo") For i = 2 To h1.Range("C" & Rows.Count).End(xlUp).Row agregar ComboBox1, h1.Cells(i, "C") Next End Sub ' Sub Cargar(ini) 'Por.Dante Amor For i = ini To 7 Me.Controls("ComboBox" & i).Clear Next For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row For j = 1 To ini - 1 If IsNumeric(Me.Controls("ComboBox" & j)) Then dato = Val(Me.Controls("ComboBox" & j)) Else dato = Me.Controls("ComboBox" & j) End If ' If h1.Cells(i, j + 2) = dato Then igual = True Else igual = False Exit For End If Next If igual Then agregar Me.Controls("ComboBox" & ini), h1.Cells(i, ini + 2) Next Me.Controls("ComboBox" & ini).SetFocus End Sub ' Sub agregar(cmbBox As ComboBox, sItem As String) 'Agrega los item únicos y en orden alfabético For i = 0 To cmbBox.ListCount - 1 Select Case StrComp(cmbBox.List(i), sItem, vbTextCompare) Case 0: Exit Sub 'ya existe en el combo, no lo agrega Case 1: cmbBox.AddItem sItem, i: Exit Sub 'Es menor, lo agrega antes del comparado End Select Next cmbBox.AddItem sItem 'Es mayor lo agrega al final End Sub
Esta macro, hace un filtro y carga los valores unicos en los combobox, como bien lo sabes jejeje... Fuiste tu el que la creo.
- Ahora necesito agregarle la forma de que, si se cumple una condición, entonces no me cargue el elemento. Para ello te ilustro con la siguiente imagen:
La idea, es que si el elemento en la Columna J ("Disponible"), dice "SI", entonces el elemento se cargue en los combobox, pero si dice "NO", entonces, ese elemento, no se cargue.
1 respuesta
Respuesta de Dante Amor
2