Macro para extraer datos de un gráfico en Excel

Seleccione idioma Seleccione idioma
Id. de artículo: 300643 - Ver los productos a los que se aplica este artículo
Para obtener una versión de este artículo para Microsoft Excel 2000, vea 213814 .
Para obtener una versión de este artículo para Microsoft Excel 98 y versiones anteriores, vea 137016 . .
Expandir todo | Contraer todo

En esta página

Resumen

En Microsoft Excel, puede recuperar datos de un gráfico incluso aunque los datos estén en una hoja de cálculo o un libro externo. Esto es útil en situaciones en las que el gráfico se creó desde otro archivo o se vinculó a otro archivo que no está disponible o que se ha dañado de algún modo. Cuando los datos de origen para un gráfico se pierden, aún puede recuperarlos desde el propio gráfico con una macro de Microsoft Visual Basic para Aplicaciones (VBA).

Más información

Microsoft proporciona ejemplos de programación solamente como ilustración, 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. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas 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 llamada "ChartData" que está en el libro activo, empezando por la primera columna y la primera fila.
  1. En la hoja de módulo, escriba la macro siguiente:
    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 su libro y cámbiele el nombre a "ChartData" (sin las comillas).
  3. Seleccione el gráfico del que quiere extraer los valores de datos subyacentes.

    NOTA: el gráfico puede estar incrustado en una hoja de cálculo o en una hoja de gráfico independiente.
  4. Ejecute la macro GetChartValues.

    Los datos del gráfico están ubicados en la hoja de cálculo "ChartData".

Pasos para vincular el gráfico con los datos recuperados

Para que el gráfico sea interactivo con los datos recuperados, necesita vincular el gráfico con la nueva hoja de datos, en lugar de mantener los vínculos al libro perdido o dañado.
  1. Seleccione el gráfico y haga clic en una serie para encontrar el nombre de la hoja a la que está vinculado el gráfico en el libro dañado o perdido. El nombre de la hoja aparece en la fórmula de la serie de la barra de fórmulas.

    NOTA: el nombre de la hoja puede seguir al nombre del libro, encerrado entre corchetes, como por ejemplo "[Libro1]", y precede al signo de exclamación de cierre "!" (o al apóstrofo y signo de exclamación de cierre "'!") que indica el principio de una referencia de celda. El nombre de hoja incluye solamente los caracteres situados entre el símbolo de corchete de cierre "]" y el signo de exclamación de cierre (o apóstrofo y signo de exclamación de cierre). Deje fuera cualquier apóstrofo si está inmediatamente antes del signo de exclamación de cierre, porque un apóstrofo no puede ser el último carácter en un nombre de hoja.
  2. Haga clic en la ficha de la nueva hoja llamada ChartData.
  3. Escriba el nombre de la hoja original del paso 1 sobre el nombre "ChartData" resaltado y presione ENTRAR. Debe ser el mismo nombre que el nombre de la hoja del libro dañado o perdido.
  4. Si no ha guardado este archivo con el gráfico y la hoja de datos, guárdelo.
  5. En Excel 2003 o Excel 2002, haga clic en Vínculos en el menú Modificar y, a continuación, haga clic en Cambiar origen.

    En Excel 2007, haga clic en la ficha Datos, haga clic en Modificar vínculos en el grupo Conexiones y, a continuación, en Cambiar origen.
  6. En el cuadro Archivo de origen, seleccione el vínculo que ha de cambiar y haga clic en Cambiar origen.
  7. En el cuadro de diálogo Cambiar vínculos, seleccione el nuevo archivo con el gráfico y los datos recuperados y haga clic en Aceptar.
  8. Si recibe el mensaje de error siguiente
    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. Vuelva al paso 1.
  9. Puede que ahora el cuadro Archivo de origen esté en blanco. Eso indica que todos los vínculos señalan al archivo activo, en lugar de al archivo perdido o dañado. Haga clic en Cerrar.
Ahora el gráfico hace referencia a, e interactúa con, los datos recuperados en la hoja, cuyo nombre se ha cambiado, del libro activo.

Propiedades

Id. de artículo: 300643 - Última revisión: miércoles, 21 de mayo de 2008 - Versión: 4.1
La información de este artículo se refiere a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Palabras clave: 
kbdtacode kbhowto kbprogramming KB300643

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com