Listbox agregue solo celdas que tienen otro color de fondo

Me gustaría saber si hay alguna manera de agregar a un listbox un numero de celdas que estén de color de fondo en amarillo, actualmente tengo el código para agregar pero me agrega todas las filas contenidas en ese rango, me gustaría saber si tiene alguna propiedad para agregar solo esas o si tengo que filtrarlas a otra hoja y desde ahí ya agregarlas.

---------------

' Con este código me agrega todos lo registros del rango 2 a 400

Dim campo, prod As Range

Set campo = Worksheets("almacen").Range("A2:A400")

For Each prod In campo ListBox1.AddItem prod.Value

Next prod

Label17.Caption = "SON " & Sheets("almacen").Range("F1").Value & " PRODUCTO SON BAJO STOCK"

---------------

1 respuesta

Respuesta
1

Si tu rango tiene celdas de a las que les has asignado un color (NO formato condicional), el bucle For Each ... Next te quedaría así:

Private Sub CommandButton1_Click()
 'Con este código me agrega todos lo registros del rango 2 a 400
Dim campo, prod As Range
Set campo = Worksheets("almacen").Range("A2:A400")
For Each prod In campo
    If prod.Interior.Color = RGB(255, 255, 0) Then ListBox1.AddItem prod.Value
Next prod
'Label1.Caption = "SON " & Sheets("almacen").Range("F1").Value & " PRODUCTO SON BAJO STOCK"
End Sub

En cambio, si tu rango tiene color como resultado de un formato condicional, la macro debe filtrar ese rango y luego llenar la lista con las celdas visibles. Esto es posible si tu versión Excel tiene la opción de Filtro x Color:

Private Sub CommandButton2_Click()
 'Con este código me agrega todos lo registros del rango 2 a 400, con Fto.Condicional
Dim campo, prod As Range
Set campo = Worksheets("almacen").Range("A2:A200")
'filtra la col A que tiene formato condicional de color amarillo
campo.AutoFilter Field:=1, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor
For Each prod In campo.SpecialCells(xlVisible)
    ListBox1.AddItem prod
Next prod
'Label1.Caption = "SON " & Sheets("almacen").Range("F1").Value & " PRODUCTO SON BAJO STOCK"
End Sub

Falta que habilites nuevamente el Label.

Sdos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas