VB Excel, Contagem de Formas com a mesma cor

0

Como posso obter o número total de formas que tenho em uma planilha do excel com a mesma cor? Por exemplo, eu tenho 3 formas de cor vermelha, 2 formas de cor verde e 1 forma de cor amarela e desejo obter o resultado como Célula (1,1): 3 (cor vermelha) Célula (2,1): 2 (cor verde) Célula (3,1): 1 (cor amarela)

* P / s: eu tinha atribuído uma macro as formas de inserção com cor especificada (vbRed, vbYellow).

Tentei com a codificação abaixo, sem erro msg mas nth mostra.

 Sub CalcShape()
     Dim sh As Sheet1
     Dim a As Single
     Dim b As Single
     Dim shp As Shape
     Dim vbYellow As Long
     Dim vbGrey As Long
     Dim vbRed As Long
     Dim vbGreen As Long

    For Each sh In ThisWorkbook.Sheets
        For Each shp In sh.Shapes
            If shp.Type = ShapeType Then
                If Shapes.Fill.ForeColor = vbRed Then
                   Sheet1.Cells(2, 1) = Shapes.Count

                End If
            End If
        Next

        For Each shp In sh.Shapes
            If shp.Type = ShapeType Then
                If Shapes.Fill.ForeColor = vbGreen Then
                    b = a + 1
                    Sheet1.Cells(3, 1) = b

                End If
            End If
        Next    
    Next
End Sub
    
por Tze Chyi 09.09.2016 / 05:30

1 resposta

0

Você não está contando seu shp :

For Each shp In sh.Shapes
            If shp.Type = ShapeType Then
                If Shapes.Fill.ForeColor = vbGreen Then
                    b = a + 1
                    Sheet1.Cells(3, 1) = b
                End If
            End If
 Next 

Aqui:

If Shapes.Fill.ForeColor 

deve ser

If shp.Fill.ForeColor

Em uma nota diferente, você pode querer considerar o uso de Select Case para isso. Também ative o Option Explicit para ver quais outros erros aparecem.

    
por 09.09.2016 / 11:57