Je travaille sur un complément pour automatiser certains rapports.
- Il existe un fichier PowerPoint de modèle de rapport qui comprend des liens vers des fichiers image de divers graphiques et tableaux. (voir ci-joint)
- Lorsque l'utilisateur clique sur le bouton "Ajouter au rapport actif", le fichier image approprié est écrasé afin que le nouveau graphique ou tableau s'affiche dans le rapport.
Le problème que j'ai est que je dois mettre à jour les liens dans le document PowerPoint.J'aimerais pouvoir dire "créer un nouveau rapport", copier le modèle et les images par défaut dans un nouveau dossier et mettre à jour les liens dans le nouveau fichier PowerPoint afin que le point sur les fichiers image dans le nouveau dossier au lieu du fichiers image dans le dossier du modèle.Des idées comment je pourrais faire cela?
Merci beaucoup,
John
Salut @johnmoore , j'ai fait face à quelque chose de similaire, je connais la difficulté de continuer à mettre à jour les packages à l'aide de modèles d'entreprise dans PowerPoint et j'ai besoin de mettre à jour environ 300 images d'Anova, des graphiques de variabilité, des rapports Cpk, etc. créés dans JMP où chaque package PowerPoint contient "essentiellement le même graphiques", toujours au même endroit, la seule différence réside dans les données brutes nécessaires au rapport spécifique.
Je ne suis pas vraiment expert en VBA, mais lorsque vous avez besoin de quelque chose, vous continuez à chercher partout et faites des essais et des erreurs jusqu'à ce que vous puissiez trouver une solution.
C'est l'approche que je suis, peut-être avez-vous quelque chose de similaire jusqu'à présent:
- Dans JMP, envoyez via JSL votre analyse (images) dans un dossier de votre PC et attribuez un nom spécifique à chaque image (ne les nommez jamais de la même manière car elles écraseront uniquement). Une fois que vous avez personnalisé dans PowerPoint l'emplacement de chaque image spécifique et créé le lien pour chacune d'elles, enregistrez-le en tant que fichier macro (ce sera votre modèle).
- Ouvrez votre modèle et exécutez la macro chaque fois que vous avez besoin d'un nouveau rapport.
- Enfin, enregistrez le fichier sans macro et avec un nom différent pour que le modèle avec des images soit prêt pour la prochaine fois.
J'espère que cela peut vous aider, je vous recommande fortement de mettre un mot de passe à la macro pour éviter les changements dans le script.
Salutations.
Sub LinkedGraphsToPictures()
'Créé par Andres Gonzalez, mars 2019
'Objectif : transformer des graphiques liés en images régulières
Dim shp As Shape
Dim sld As Slide
Dim pic As Shape
Dim shp_left As Double
Dim shp_top As Double
Dim sld_count As Long
'Parcourir chaque diapositive dans ActivePresentation
Pour chaque sld dans ActivePresentation.Slides
Pour sld_count = ActivePresentation.Slides.Count To 1 Step -1
' Comptez jusqu'à -1 pour compter à rebours afin d'éviter de sauter des graphiques en raison de la suppression d'un graphique
Définir sld = ActivePresentation.Slides(sld_count)
Pour chaque shp dans sld.Shapes
Si shp.Type = msoLinkedPicture Alors
'Récupérer la position actuelle
shp_left = shp.Left
shp_top = shp.Top
'Copier/Coller en tant qu'image
shp.Copier
sld.Shapes.PasteSpecial DataType :=ppPastePNG
Set pic = sld.Shapes(sld.Shapes.Count)
'Supprimer la forme liée
shp.Supprimer
'Repositionner l'image nouvellement collée
pic.Left = shp_left
pic.Top = shp_top
Fin si
Prochaine livraison
Sld_count suivant
SLD suivant
Sous-titre de fin