Macro para extrair dados de um gráfico do Excel

Para obter uma versão do Microsoft Excel 2000 deste artigo, consulte
213814 .
Para um Microsoft Excel 98 e uma versão anterior do presente artigo, consulte
137016 .

Sumário

No Microsoft Excel, pode obter dados de um gráfico, mesmo quando os dados são uma folha de cálculo externa ou livro. Isto é útil em situações em que o gráfico foi criado a partir de ou ligado a outro ficheiro que não está disponível ou que ficou danificado de alguma forma. Quando os dados de origem a um gráfico são perdidos, os dados podem ainda ser obtidos a partir do gráfico propriamente dito, utilizando o Microsoft Visual Basic para a macro de aplicações.

Mais informações

A Microsoft fornece exemplos de programação apenas a título ilustrativo, sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas que são utilizadas para criar e depurar procedimentos. Técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.


A seguinte macro de exemplo coloca dados de origem do gráfico numa folha de cálculo chamada "ChartData" no livro activo, início na primeira coluna e linha primeira.
  1. Introduza o código de macro seguinte numa folha de módulo:
    Sub GetChartValues()   Dim NumberOfRows As Integer
    Dim X As Object
    Counter = 2

    ' Calculate the number of rows of data.
    NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)

    Worksheets("ChartData").Cells(1, 1) = "X Values"

    ' Write x-axis values to worksheet.
    With Worksheets("ChartData")
    .Range(.Cells(2, 1), _
    .Cells(NumberOfRows + 1, 1)) = _
    Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
    End With

    ' Loop through all series in the chart and write their values to
    ' the worksheet.
    For Each X In ActiveChart.SeriesCollection
    Worksheets("ChartData").Cells(1, Counter) = X.Name

    With Worksheets("ChartData")
    .Range(.Cells(2, Counter), _
    .Cells(NumberOfRows + 1, Counter)) = _
    Application.Transpose(X.Values)
    End With

    Counter = Counter + 1
    Next

    End Sub

  2. Inserir uma nova folha de cálculo no livro e mude-o para "ChartData" (sem as aspas).
  3. Seleccione o gráfico a partir do qual pretende extrair os valores de dados subjacente.

    Nota: O gráfico pode estar incorporado numa folha de cálculo ou numa folha de gráfico separada.
  4. Execute a macro GetChartValues .

    Os dados do gráfico são colocados na folha de cálculo "ChartData".

Passos para ligar o gráfico aos dados recuperados

Para que o gráfico seja interactivo com os dados recuperados, tem de ligar o gráfico para a nova folha de dados em vez de manter as hiperligações para o livro em falta ou danificado.
  1. Seleccione o gráfico e clique numa série para localizar o nome da folha à qual o gráfico está ligado no livro em falta ou danificado. O nome da folha aparece na fórmula da série na barra de fórmulas.

    Nota: O nome da folha pode seguir o nome do livro que está entre parênteses rectos como "[Book1]" e preceder o ponto de exclamação "!" (ou apóstrofe e ponto de exclamação "'!") que indica o início de uma referência de célula. O nome da folha inclui apenas os caracteres entre o símbolo de Parêntese recto fechado "]" e o ponto de exclamação (ou apóstrofe e ponto de exclamação). Deixe de fora qualquer apóstrofe-se imediatamente antes do ponto de exclamação, porque um apóstrofe não pode ser o último carácter no nome de uma folha.
  2. Faça duplo clique no separador da nova folha chamada DadosdoGráfico.
  3. Escreva o nome da folha original do passo 1 sobre "ChartData" realçado e prima ENTER. Este nome tem de ser igual ao nome de folha do livro danificado ou em falta.
  4. Se não guardou este ficheiro com a gráfico e folha de dados, guarde o ficheiro.
  5. No Excel 2003 ou Excel 2002, clique em ligações no menu Editar e, em seguida, clique em Alterar origem.

    No Excel 2007, clique no separador dados , clique em Editar ligações
    o grupo de Connenctions e, em seguida, clique em
    Alterar origem.
  6. Na caixa Ficheiro de origem , seleccione a hiperligação para alterar e, em seguida, clique em Alterar origem.
  7. Na caixa de diálogo Alterar ligações , seleccione o novo ficheiro com os dados recuperados e do gráfico e, em seguida, clique em OK.
  8. Se receber a seguinte mensagem de erro
    A fórmula contém uma referência externa inválida para uma folha de cálculo.
    é provável que o nome da folha que escreveu no passo 3 não é o mesmo que o original. Vá para o passo 1.
  9. Agora pode estar em branco a caixa de Ficheiro de origem . Isto indica que todas as ligações apontam para o ficheiro activo em vez do ficheiro em falta ou danificado. Clique em Fechar.
O gráfico agora referencia e interage com os dados recuperados na folha com o novo nome do livro activo.
Propriedades

ID do Artigo: 300643 - Última Revisão: 21/02/2017 - Revisão: 1

Comentários