Estou tentando obter a contagem de formas por cor referindo o código de cores em outra planilha ("Resumo") e inserindo o resultado nessa planilha ("Resumo"), mas parece que não está funcionando e mostra apenas o resultado na primeira linha. Na Sheet1, tenho formas com cores diferentes e agrupo ou desagrupo. Em Sheet ('Summary'), eu tenho meu código RGB em Col C, Col D, Col E (Row 2 - 5). Eu quero que o resultado seja inserido em Col F de acordo com o código em Col C - E. Por exemplo, Minha referência: (Col C - Col E) Linha 2: 255 200 255 Linha 3: 0 255 0 Linha 4: 200 200 200 Fila 5: 0 0 255
Meu resultado: (Col F) Linha 2: 2 Linha 3: 11 Linha 4: 0 Fila 5: 5
Agora, o que consegui foi na linha 2 = 0, linha 3 - 5=""
Private Sub Ignore_Click()
Dim sh As Sheet1
Dim shp As Shape
Dim shp2 As Shapes
Dim shprange As ShapeRange
CountShape = 0
CountChildShape = 0
'Sheet1.Shapes.SelectAll
Set SmClr = Application.ThisWorkbook.Sheets("Summary")
LRow1 = SmClr.Range("C" & Rows.Count).End(xlUp).Row + 1
LRow2 = SmClr.Range("D" & Rows.Count).End(xlUp).Row + 1
LRow3 = SmClr.Range("E" & Rows.Count).End(xlUp).Row + 1
LRowC = SmClr.Range("C" & LRow1)
LRowD = SmClr.Range("D" & LRow2)
LRowE = SmClr.Range("E" & LRow3)
For Each shp In Sheet1.Shapes
If shp.Type = msoGroup Then
Set shprange = shp.Ungroup
Set oMyGroup = shprange.Group
If shprange.Fill.ForeColor.RGB = RGB(LRowC, LRowD, LRowE) Then
CountChildShape = CountChildShape + 1
End If
End If
Next shp
For Each shp In Sheet1.Shapes
If shp.Type <> msoGroup Then
If shp.Fill.ForeColor.RGB = RGB(LRowC, LRowD, LRowE) Then
CountShape = CountShape + 1
End If
End If
Next shp
CntShp = CountShape + CountChildShape
LastRow = SmClr.Range("F" & Rows.Count).End(xlUp).Row + 1
Application.ThisWorkbook.Sheets("Summary").Range("F" & LastRow).Value = CntShp
End Sub
Tags microsoft-excel vba