Re : Macro pour PowerPoint 2007
Bonjour Carphil, Nono, le forum
Le besoin initial de Carphil m'a inspiré, donc du coup, je partage
.
Ci-joint une autre version qui permet de renvoyer vers PowerPoint deux types de variables :
- des variables textes - qui comme dans l'exemple précédent sont représentées dans le modèle par le texte ${NomVariable}.
- des variables zones - représentées dans le modèle par des formes contenant uniquement le nom de la varible dans le formalisme $Z{NomVariable}.
Les zones peuvent être de deux types :
- une plage de cellule - définie par le nom de la feuille et l'adresse de la zone. Il est possible d'utiliser les références structurées des tableaux, mais avec leur notation anglaise.
Un tableau HTML est renvoyé dans le modèle PowerPoint à la place de la forme, centré et réduit si nécessaire.
- un graphique - défini par le nom de la feuille et le nom du graphique.
Une image est renvoyée dans le modèle PowerPoint à la place de la forme, centrée et réduite si nécessaire.
Le fichier zip contient un modèle de présentation PowerPoint et un fichier Excel avec des données et une analyse bidons.
Le fichier Excel est composé de :
- une feuille de données ;
- une feuille d'analyse contenant des tableaux et graphiques à renvoyer vers PowerPoint et un bouton permettant de générer la présentation ;
- une feuille cachée (FeuilInt) utile à l'analyse (listes de validation et source de données d'un graphique) ;
- une feuille ParamPPT contenant le chemin du modèle PowerPoint (à adapter) ainsi que les variables du modèle avec leur valeur. Une fois paramétrée, cette feuille peut être cachée.
Cette feuille contient également le code permettant de générer la présentation. Il y a une fonction publique (GenererPPT) qui génère la présentation et renvoie l'objet Ce lien n'existe plus pour un éventuel traitement supplémentaire (enregistrer, générer un pdf, envoyer par mail...).
Le code a été fait sur Office 2013 et testé uniquement dans cet environnement.
Pour mettre en œuvre cette solution dans un autre classeur, il suffit de copier la feuille
ParamPPT dans le classeur concerné, la paramétrer et utiliser la fonction
GenererPPT.
A+
Edit (v2) : Correction d'un bug (merci Chris et Nono pour vos essais)
Il semble impossible de coller une plage de cellule au format HTML par macro sur Powerpoint 2010. Si cette action échoue, la plage de cellule sera collée en tant qu'image (on perd donc la possibilité d'éditer les données après coup...).