2012-02-09 153 views
7

Tengo 30 cuadros que se crearon a partir de Excel y se pegaron en diapositivas de PowerPoint. Cada mes, tengo que actualizar estos 30 gráficos integrados haciendo clic manualmente en los gráficos y editando.¿Cómo actualizar los gráficos incrustados de Excel en PowerPoint?

Soy consciente de que hay una opción para usar pegar especial, para que los datos en los gráficos se puedan actualizar automáticamente haciendo clic en los enlaces de actualización. Sin embargo, mis cuadros deben ser editados por algunos usuarios. Pegar la opción especial no permite a los usuarios editar los gráficos. Por lo tanto, no puedo usar esta opción especial de pegar.

Creo que la solución está en escribir un vba en powerpoint. ¿Puede algún experto ofrecer aquí escribir este código vba para permitir que todos los gráficos se actualicen en PowerPoint? Actualmente estoy usando Powerpoint 2007. Su ayuda es muy apreciada.

Respuesta

14

Si necesita editar las listas entonces es claro que o bien tiene que editar los archivos de Excel subyacentes, o ser capaz de editar en PowerPoint

Como está utilizando PowerPoint2007 que proporciona soporte Excel completa (a diferencia de PowerPoint 2003, que tiene una hoja de datos) me gustaría

Parte 1

  1. datos del archivo de Excel a su Enlace los datos de Excel debajo de cada gráfico
  2. Proporcionar la capacidad de cualquiera de utilizar esos datos directamente, o de anulación con datos de usuario

Sample

Esto le proporciona una solución flexible, excepto que Excel que subyace en cada gráfico no puede actualizarse automáticamente a través de un PowerPoint menú Actualizar enlace comando.

Parte 2

Se puede utilizar el siguiente código para probar cada si cada forma en cada diapositiva tiene un gráfico. Si lo que este código se actualizará el primer eslabón de Excel en el archivo de Excel debajo de la tabla (esta parte puede ser ajustado para manejar múltiples enlaces)

Sub ChangeChartData() 

    Dim pptChart As Chart 
    Dim pptChartData As ChartData 
    Dim pptWorkbook As Object 
    Dim sld As Slide 
    Dim shp As Shape 

    For Each sld In ActivePresentation.Slides 
     For Each shp In sld.Shapes 
      If shp.HasChart Then 
       Set pptChart = shp.Chart 
       Set pptChartData = pptChart.ChartData 
       pptChartData.Activate 
       Set pptWorkbook = pptChartData.Workbook 
       On Error Resume Next 
       'update first link 
       pptWorkbook.UpdateLink pptWorkbook.LinkSources(1) 
       On Error GoTo 0 
       pptWorkbook.Close True 
      End If 
     Next 
    Next 

    Set pptWorkbook = Nothing 
    Set pptChartData = Nothing 
    Set pptChart = Nothing 

End Sub 
+0

Gracias por la pronta respuesta. Copié y pegué este vba en powerpoint y este vba puede ejecutarse. Sin embargo, estoy recibiendo un menú emergente que me pide que actualice el archivo en mi carpeta de documentos.Mi fuente, es decir, el archivo de Excel, se encuentra en la carpeta de mi escritorio. ¿Cómo elimino el menú emergente? Muchas gracias por este vba. – user1199080

+1

Gracias. Hago una pequeña modificación en el código vba y ahora sus actualizaciones son perfectas. Este código es un salvavidas. Gracias de nuevo. – user1199080

+1

Esta es una gran respuesta. ¿Esto también puede romper los enlaces? – mooseman

2

Esto se logra con bastante facilidad, sin ningún código VBA requerido.

  1. Haga clic en el "Botón de Office", seleccione "Editar vínculos a archivos" (que es por debajo de "Ejecutar Compatibility Check", tendrá que desplazarse hacia abajo para ver la última opción):

    Office Menu, "Prepare" submenu

  2. Seleccionar todos los gráficos incrustados (denominados aquí como "enlaces"), haga clic en "Actualizar ahora":

    "Links" window

Puede usar la misma ventana para cortar enlaces, así como para cambiar el archivo fuente de cualquier enlace dado.

+1

Esto puede usarse si PPT está vinculado directamente a Excel, pero no si los archivos de Excel vinculados se encuentran debajo de los gráficos – brettdj

Cuestiones relacionadas