web-dev-qa-db-fra.com

Comment mettre à jour les graphiques intégrés Excel dans PowerPoint?

J'ai 30 graphiques créés à partir d'Excel et collés sur des diapositives PowerPoint. Chaque mois, je dois mettre à jour ces 30 graphiques intégrés en cliquant manuellement sur les graphiques et les modifier.

Je suis conscient qu'il existe une option pour utiliser la pâte spéciale, afin que les données des graphiques puissent être mises à jour automatiquement en cliquant sur les liens de mise à jour. Cependant, mes graphiques doivent être modifiés par certains utilisateurs. L'option spéciale Coller ne permet pas aux utilisateurs de modifier les graphiques. Par conséquent, je ne peux pas utiliser cette option spéciale de collage.

Je pense que la solution réside dans l'écriture d'un vba dans PowerPoint. Un expert ici peut-il proposer d'écrire ce code vba pour permettre à tous les graphiques d'être mis à jour dans PowerPoint? J'utilise actuellement PowerPoint 2007. Votre aide est grandement appréciée.

8
user1199080

Si vous avez besoin de modifier les graphiques, vous devrez clairement soit modifier les fichiers Excel sous-jacents, soit être en mesure de modifier dans PowerPoint

Comme vous utilisez PowerPoint2007 qui fournit une prise en charge complète d'Excel (contrairement à PowerPoint 2003 qui a une fiche technique), je voudrais

Partie 1

  1. Liez vos données de fichier Excel aux données Excel sous chaque graphique
  2. Offrir la possibilité d'utiliser ces données directement ou de les remplacer par des données utilisateur

Sample

Cela vous donne une solution flexible, sauf qu'Excel sous-jacent à chaque graphique ne peut pas être mis à jour automatiquement via une commande de mise à jour des liens du menu PowerPoint.

Partie 2

Vous pouvez utiliser le code ci-dessous pour tester chacun si chaque forme de chaque diapositive a un graphique. Si tel est le cas, ce code mettra à jour le premier lien Excel dans le fichier Excel sous le graphique (cette partie peut être modifiée pour gérer plusieurs liens)

    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
15
brettdj

Ceci est assez facilement accompli, sans aucun code VBA requis.

  1. Cliquez sur le "Bouton Office", sélectionnez "Modifier les liens vers le fichier" (c'est sous "Exécuter le contrôle de compatibilité", vous devrez faire défiler vers le bas pour voir cette dernière option):

    Office Menu, "Prepare" submenu

  2. Sélectionnez tous les graphiques intégrés (appelés ici "liens"), cliquez sur "Mettre à jour maintenant":

    "Links" window

Vous pouvez utiliser la même fenêtre pour rompre les liens, ainsi que pour modifier le fichier source pour un lien donné.

2
eykanal