Saltar al contenido

Rellenar ComboBox y ListBox con condiciones


Recommended Posts

publicado

Hola foristas.

Hace un tiempo atrás Macro Antonio me ayudó a crear un formulario en el cual llenaba un ComboBox y un ListBox con la información que tenia en una Hoja. Lo modifiqué porque fui agregando varias cosas mas pero estoy perdido como turco en la neblina para acomodar el código a la nueva forma del formulario.

El codigo es el siguiente:


Private Sub Cat_Click()Dim Categoria As Boolean
Ali.Clear


If Cat.ListIndex < 1 Then
Ali.ColumnWidths = "75;110;0"
Else
Ali.ColumnWidths = "90;0;0"
End If


For x = 2 To Alimentos.Range("B" & Rows.Count).End(xlUp).Row
If Alimentos.Range("B" & x).Interior.Color = vbBlack Then
If Cat.Text = Alimentos.Range("B" & x) Then
Categoria = True
Else
Categoria = False
NombreCategoria = Alimentos.Range("B" & x)
End If
Else
If Cat.ListIndex < 1 Then
Ali.AddItem NombreCategoria
Ali.List(Ali.ListCount - 1, 1) = Alimentos.Range("B" & x)
Ali.List(Ali.ListCount - 1, 2) = x
ElseIf Categoria = True Then
Ali.AddItem Alimentos.Range("B" & x)
Ali.List(Ali.ListCount - 1, 2) = x
End If
End If
Next


End Sub[/CODE]

En ese entonces solo tenia categorías y alimentos, ahora tengo ademas subcategorias.

Lo que quiero hacer es rellenar el ComboBox "Subcat" dependiendo lo que haya elegido en "Cat" y a su vez se modifique lo que hay en el ListBox "Ali".

Por ejemplo, si yo elijo "Todos" en la categoría (que en realidad seria no elegir nada) "Cat", que en el ComboBox "Subcat" aparezcas todas las subcategorias y a su vez en el ListBox que aparezca en una columna la subcategoria que pertenece cada alimento y en otra el alimento mismo.

Si yo modifico el ComboBox "Subcat" y en vez de elegir "Todos" elijo una opción, que en el ListBox aparezca los alimentos pertenecientes a esa Subcategoria nada... como si fuera una lista sin tener dos columnas.

Adjunto también el archivo en el cual esta hecho el código.

Desde ya muchas gracias y espero haber sido conciso...

Saludos!

AliNutrPlan.rar

publicado

Le agregue algunos datos y ahora si no se hace ninguna elección están todos los alimentos en el ListBox en una columna y su respectiva subcategoria en otra en el mismo ListBox....

Lo que no logro hacer es que una vez que se encuentra con el color negro (vbBlack) en el bucle For To Then, agregue a todas las subcategorias al ComboBox "Subcat" hasta encontrarse con la siguiente celda vbBlack.


For x = 2 To Alimentos.Range("B" & Rows.Count).End(xlUp).Row
If Alimentos.Range("B" & x).Interior.Color = vbBlack Then
If Cat.Text = Alimentos.Range("B" & x) Then
Categoria = True
Else
Categoria = False
NombreCategoria = Alimentos.Range("B" & x)
End If
ElseIf Alimentos.Range("B" & x).Interior.Color = vbYellow Then
If Cat.Text = Alimentos.Range("B" & x) Then
Subcategoria = True
Else
Subcategoria = False
NombreSubcategoria = Alimentos.Range("B" & x)
End If
Else
If Cat.ListIndex < 1 Then
Ali.AddItem NombreSubcategoria
Ali.List(Ali.ListCount - 1, 1) = Alimentos.Range("B" & x)
Ali.List(Ali.ListCount - 1, 2) = x
ElseIf Subcategoria = True Then
Ali.AddItem Alimentos.Range("B" & x)
Ali.List(Ali.ListCount - 1, 2) = x
End If
End If
Next[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.