Macro para extraer datos de un gráfico en Excel

Resumen

En Microsoft Excel, puede recuperar datos de un gráfico incluso cuando los datos están en una hoja de cálculo o libro externa. Esto resulta útil en situaciones en las que el gráfico se creó a partir de otro archivo que no está disponible o que se ha dañado de alguna manera. Cuando se pierden los datos de origen de un gráfico, los datos se pueden recuperar del propio gráfico mediante una macro de Microsoft Visual Basic para Aplicaciones.

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Se considera que está familiarizado con el lenguaje de programación que se muestra y con las herramientas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.

La siguiente macro de ejemplo coloca los datos de origen del gráfico en una hoja de cálculo denominada "ChartData" en el libro activo, comenzando en la primera columna y primera fila.

  1. Escriba el siguiente código de macro en una hoja 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. Inserte una nueva hoja de cálculo en el libro y cámbiele el nombre a "ChartData" (sin comillas).

  3. Seleccione el gráfico del que desea extraer los valores de datos subyacentes.

    Nota:

    El gráfico se puede incrustar en una hoja de cálculo o en una hoja de gráfico independiente.

  4. Ejecute la macro GetChartValues.

    Los datos del gráfico se colocan en la hoja de cálculo "ChartData".

Para que el gráfico sea interactivo con los datos recuperados, debe vincular el gráfico a la nueva hoja de datos en lugar de conservar los vínculos al libro que falta o está dañado.

  1. Seleccione el gráfico y haga clic en una serie para buscar el nombre de hoja al que está vinculado el gráfico en el libro dañado o que falta. El nombre de la hoja aparece en la fórmula de serie de la barra de fórmulas.

    Nota:

    El nombre de la hoja puede seguir el nombre del libro, que se incluye entre corchetes como "[Book1]" y precede al signo de exclamación "!" (o apóstrofo y signo de exclamación "'!") que indica el principio de una referencia de celda. El nombre de la hoja solo incluye los caracteres entre el símbolo de corchete cuadrado cerrado "]" y el signo de exclamación (o apóstrofo y signo de exclamación). Deje fuera cualquier apóstrofo si está inmediatamente antes del signo de exclamación, porque un apóstrofo no puede ser el último carácter de un nombre de hoja.

  2. Haga doble clic en la pestaña de la nueva hoja denominada ChartData.

  3. Escriba el nombre de la hoja original del paso 1 sobre el resaltado "ChartData" y presione ENTRAR. Este nombre debe ser el mismo que el nombre de la hoja del libro dañado o que falta.

  4. Si no ha guardado este archivo con el gráfico y la hoja de datos, guarde el archivo.

  5. En Excel 2003 o Excel 2002, haga clic en Vínculos en el menú Editar y, a continuación, haga clic en Cambiar origen.

    En Excel 2007, haga clic en la pestaña Datos , haga clic en Editar vínculos en el grupo Connenctions y, a continuación, haga clic en Cambiar origen.

  6. En el cuadro Archivo de origen, seleccione el vínculo que desea cambiar y, a continuación, haga clic en Cambiar origen.

  7. En el cuadro de diálogo Cambiar vínculos, seleccione el nuevo archivo con los datos recuperados y el gráfico y, a continuación, haga clic en Aceptar.

  8. Si recibe el siguiente mensaje de error

    La fórmula contiene una referencia externa no válida a una hoja de cálculo.

    es probable que el nombre de la hoja que escribió en el paso 3 no sea el mismo que el original. Volver al paso 1.

  9. El cuadro Archivo de origen ahora puede estar en blanco. Esto indica que todos los vínculos apuntan al archivo activo en lugar del archivo que falta o está dañado. Haga clic en Cerrar.

El gráfico ahora hace referencia e interactúa con los datos recuperados en la hoja cuyo nombre se ha cambiado en el libro activo.