Partager via

Mettre à jour graphique ppt grâce à VBA

Anonyme
2021-12-03T16:13:49+00:00

Bonjour à tous,

Je ne suis pas une pro de VBA mais en m'inspirant de divers morceaux de code j'ai réussi à faire la chose qui suit :

  • création d'un template ppt (des formes, des zones de texte etc)
  • création d'une base de donnée dans excel
  • associé cellule A2 = zone de texte dans le template
  • en bref : une ligne excel = une slide
  • création d'une slide en remplissant les différents champs du ppt
  • si on a 10 lignes on aura la création de 10 slides avec toutes les données mises à jours (texte, forme etc)

Je dois cependant aussi mettre à jour les données d'un graphique. C'est à dire que jusqu'à maintenant ma macro disait : tu as une zone de texte dans ppt, merci de mettre ce que contient la cellule A2 dans la zone de texte du ppt. Quand tu as finis, créer une autre slide et recommence avec la slide suivante.

Là ce que je dois faire c'est (avant qu'il passe à la slide suivante) que la macro sélectionne le graph dans ppt, ouvre le classeur associé et mette à jour les données.

J'ai essayé en enregistrant la macro mais je n'arrive absolument pas à faire cela.

Quelqu'un pourrait-il m'aider ?

Je précise : je ne peux pas copier avec liaison car quand je remplis la base de données excel, les slides en question "n'existe pas encore" puisqu'elles se créent avec la macro en fonction du nombre de ligne etc.

Pour donner une idée, voici un bout du code (il est long) car à chaque fois 10 lignes pour les variables :

'opening the ppt

Dim DestinationPPT As String

DestinationPPT = hyp.Range("file_path").Value

Dim PowerPointApp As PowerPoint.Application

Dim myPresentation As PowerPoint.Presentation

Set PowerPointApp = CreateObject("PowerPoint.Application")

Set myPresentation = PowerPointApp.Presentations.Open(DestinationPPT)

Dim activeSlide As Slide

Dim template As Slide

Set template = myPresentation.Slides(1)

For i = 2 To last_line

j = i - 1 

Set activSlide = template.Duplicate 

'defining the Shape\_logo 

Variable\_1 = data2(i, col\_TITLE\_1) 

Variable\_2 = data2(i, col\_TITLE\_2) 

Variable\_3 = data2(i, col\_TITLE\_3) 

Variable\_4 = data2(i, col\_TITLE\_4) 

Variable\_5 = data2(i, col\_TITLE\_5) 

Variable\_6 = data2(i, col\_TITLE\_6) 

Variable\_7 = data2(i, col\_TITLE\_7) 

Variable\_8 = data2(i, col\_TITLE\_8) 

Variable\_9 = data2(i, col\_TITLE\_9) 

Variable\_10 = data2(i, col\_TITLE\_10)
Microsoft 365 et Office | Excel | Autres | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

1 réponse

  1. Anonyme
    2021-12-22T11:05:37+00:00

    Bonjour,
    Pour avoir une réponse transformer le titre discussion en tire Question svp .

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire