Comparação de lucros com representação gráfica

Objetivo: realizar a comparação através de um desenho gráfico de uma seta, que demonstra se o período anterior ficou acima ou abaixo do ano anterior.

Este exemplo foi adaptado do livro VBA e Macros para Microsoft Office 2007 de Bill Jelen e Tracy Syrstad e serve como o estudo de uma macro que cria um desenho de uma seta de acordo com o mês selecionado na planilha.


Abaixo o código fonte utilizado na macro que cria o desenho:

Private Sub Worksheet_Calculate()
  Select Case Range("I3").Value
    Case Is  Range("I4").Value
        SetArrow 3, msoShapeUpArrow
 End Select
End Sub

Public Sub SetArrow(ByVal ArrowColor As Integer, ByVal ArrowDegree)
'O código a seguir é adicionado a fim de reover as formas anteriores
    For Each sh In ActiveSheet.Shapes
        If sh.Name Like "*Arrow*" Then
            sh.Delete
        End If
    Next sh
    
    ActiveSheet.Shapes.AddShape(ArrowDegree, 330.25, 60.5, 30, 20).Select
    With Selection.ShapeRange
        With .Fill
            .Visible = msoTrue
            .Solid
            .ForeColor.SchemeColor = ArrowColor
            .Transparency = 0#
        End With
        With .Line
            .Weight = 0.75
            .DashStyle = msoLineSingle
            .Style = msoLineSingle
            .Transparency = 0#
            .Visible = msoTrue
            .ForeColor.SchemeColor = 64
            .BackColor.RGB = RGB(255, 255, 255)
        End With
        Range("A3").Select 'Posiciona a seleção de volta na lista suspensa
    End With
End Sub

Baixe a planilha

Marcos Rieper