Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

VBA Excel - Definindo o tipo de Gráfico - Change Chart Type.

Inline image 2


O tipo de gráfico utilizado em uma planilha pode ser definido pelo usuário que estiver utilizando um MIS. Deixá-lo escolher o tipo pode tornar sua experiência mais enriquecedora do ponto de vista da análise.

Essa funcionalidade também fica bem quando utilizada em Dashboards Dinâmicos.

Apply custom chart type
Change Chart Type
Change Default Chart Type
Change Excel Chart Plotarea Color Through VBA
Changing SeriesCollection Values for Line Chart
Changing a Chart Title Using VBA in Excel
Creating Charts in Microsoft Office Excel using Visual Basic
Dynamic and Interactive Charts
Excel Charts
Excel Charts & Charting Tips
Excel Charts and Graphs
Getting Started with VBA in Excel
Microsoft Excel Chart Types
Quick Excel Chart VBA Example
Setting the Default Chart Type in Microsoft Excel
Using VBA to change Chart Type
VBA Chart
VBA in Excel Charting

No momento em que o gráfico estiver ativo (com foco nele chart.setfocus - O gráfico fica ativo se o usuário o selecionou ou se foi ativado com o método Activate), utilize a propriedade ActiveChart para fazer referência ao mesmo. 

Abaixo o código demonstra como ativar o primeiro gráfico, definindo em seguida, o título e o tipo deste.

Charts(1).Activate

With ActiveChart

    Let .Type = xlLine
       Let 
.HasTitle = True
       Let 
.ChartTitle.Text = "Vendas de Janeiro"
End With

Pode colocar diversos tipos de gráficos dentro de um combobox e deixar o usuário escolhê-los a partir desta lista. Ao manipular o evento Change da caixa de combinação (combobox) esta terá o código abaixo. Esteja ciente de que, neste caso, por estar usando dados externos, deve tornar o objeto ChartData Ativo ao acessá-lo. Após mudar o nome da série e o valor (como no exemplo), o objeto gráfico deve ser atualizado para mostrar as alterações.

Private Sub ComboBox1_Change()
    ' Author:                     Date:               Contact:                 URL:
    ' André Bernardes             05.04.2011 - 10:25.   bernardess@gmail.com     http://inanyplace.blogspot.com/
    ' Application: XtractDashboard®.
    ' .

    Dim salesChart As Chart
    Dim chartWorkSheet As Excel.Worksheet
    
    ' O gráfico. (O primeiro no ComboBox.)
    Set salesChart = ActiveDocument.InlineShapes(2).Chart
        
    ' Ativa os dados antes de acessar o workbook.
    salesChart.ChartData.Activate

    ' Obtém a primeira worksheet.
    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
    
    '  Escolhe a série baseada na opção do ComboBox.
    Select Case ComboBox1.Value
        Case "ABL1"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"
            
        Case "ABL2"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"
            
        Case "ABL3"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"
            
        Case "ABL4"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"
            
    End Select
    
    ' Atualizao o gráfico, tornando as mudanças visíveis.
    salesChart.Refresh
    
    ' Minimiza o Excel.
    Let chartWorkSheet.Application.WindowState = xlMinimized
End Sub

    Dim salesChart As Chart

    Dim chartWorkSheet As Excel.Worksheet

    ' O gráfico. (O primeiro no ComboBox.)

    Set salesChart = ActiveDocument.InlineShapes(2).Chart

    ' Ativa os dados antes de acessar o workbook.

    salesChart.ChartData.Activate

    ' Obtém a primeira worksheet.
    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)
    
    '  Escolhe a série baseada na opção do ComboBox.
    Select Case ComboBox1.Value
        Case "ABL1"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"
            
        Case "ABL2"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"
            
        Case "ABL3"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"
            
        Case "ABL4"
            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")
            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"
            
    End Select
    
    ' Atualizao o gráfico, tornando as mudanças visíveis.
    salesChart.Refresh
    
    ' Minimiza o Excel.
    Let chartWorkSheet.Application.WindowState = xlMinimized
End Sub

    ' Obtém a primeira worksheet.

    Set chartWorkSheet = salesChart.ChartData.Workbook.Worksheets(1)

    '  Escolhe a série baseada na opção do ComboBox.

    Select Case ComboBox1.Value

        Case "ABL1"

            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("B1")

            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$B$2:$B$5"

        Case "ABL2"

            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("C1")

            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$C$2:$C$5"

        Case "ABL3"

            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("D1")

            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$D$2:$D$5"

        Case "ABL4"

            Let DashboardChart_01.SeriesCollection(1).Name = chartWorkSheet.Range("E1")

            Let DashboardChart_01.SeriesCollection(1).Values = "='Sheet1'!$E$2:$E$5"

    End Select

    ' Atualizao o gráfico, tornando as mudanças visíveis.

    salesChart.Refresh

    ' Minimiza o Excel.

    Let chartWorkSheet.Application.WindowState = xlMinimized

End Sub


ReferênciaMicrosoft MSDN

Tags: VBA, Office, Excel, chart, type, gráfico, tipo


eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine