Copier des graphiques de Excel vers Powerpoint

16 Comments

De retour après 3 semaines de vacances Cool !

Malheureusement, le retour à la réalité est un peu brutal cette semaine. Comme par exemple mettre à jour les rapports mensuels. Chaque mois, la tâche revient où il faut mettre à jour une présentation Powerpoint en y insérant des graphiques de Excel. La tâche peut être longue et répétitive : Copier / Coller / Positionner / Dimensionner chaque graphique.

Pourquoi faire ce travail manuellement quand on peut laisser Excel travailler à notre place ??!

Voici donc une macro que j’ai pris le temps de développer et qui permet de copier les graphiques déterminés dans PowerPoint. Pour que la macro fonctionne correctement, il faut avoir un gabarit PowerPoint avec le bon nombre de diapositives. Tout ce qui reste à adapter dans la macro c’est le nom des graphiques, le numéro de la diapositive, la position et la dimension de chaque graphique.  Un peu de bidouillage et d’ajustement pour que ce soit correct mais maintenant que c’est bien ajusté, le mois prochain je n’aurai pas à recommencer.

La procédure principale est “GraphExcel_vers_PowerPoint”.

Celle-ci appelle d’abord la fonction “GetFileName” qui permet de choisir le fichier PowerPoint à ouvrir.

Ensuite la fonction principale appelle autant de fois qu’il le faut la procédure “ChartToPPT”. Le code est ainsi facilement modifiable au cas où il faut ajouter / supprimer des graphiques.

De plus, si on veut utiliser cette méthode pour différents présentation PowerPoint, il ne suffit que de copier / modifier la procédure principale. Facile!

Les rapports mensuels seront maintenant une formalité!

Est-ce que cet article vous a été utile? Si oui, partagez-le sur vos réseaux sociaux.

16 comments on “Copier des graphiques de Excel vers Powerpoint

  1. Danny on said:

    Excellent !!! Un grand Merci ! :D

  2. Clara on said:

    Le programme (tel quel) ne fonctionne pas sur ma machine. J’ai des problèmes avec les ChartObjects. Mon environnement est le suivant windows 7, la librairie de PowerPoint est incluse. Est-ce que j’oublie quelque chose ? Merci.

    • GCExcel on said:

      Bonjour,
      Quelle est le code d’erreur affiché?
      Avez-vous nommé vos graphiques “Graphique 1″ et “Graphique 2″? Il est essentiel que le nom de vos graphiques soient les mêmes dans la macro.
      Pour connaître le nom d’un graphique, cliquer dessus et son nom apparaît dans la case à gauche de la barre de formule.

  3. Pascal on said:

    Bonjour

    Est-ce que ça serait possible de faire ouvrir une liste des graphiques et de pouvoir choisir quels graphiques je veux copier.

    Par exemple j’ai présentement 35 graphiques et je dois choisir par exemple 15 graphiques a copier et d’autre fois 20 etc..

    Présentement je copie tout et j’efface ceux que je ne veux pas dans mon powerpoint…

    Merci

  4. Sophie on said:

    Bonjour,

    Un grand merci pour ce code bien pratique!
    J’aurais voulu savoir s’il était possible d’exporter des ranges excel vers la même présentation ppt en utilisant le même principe que la procedure ChartToPpt?
    J’ai tenté ma chance mais étant très novice en VBA, je me suis vite retrouvée bloquée :-)…

    Merci d’avance !
    Sophie

  5. Jimmy on said:

    Bonjour,
    J’ai un soucis avec ce code suivant :
    Set cht = ThisWorkbook.Sheets(“Ventes”).ChartObjects(“Graphique 1″)
    Call ChartsToPPT(ppPres, 3, cht, 100, 150, 400, 400)
    la commande exécuté s’arrete à ce niveau

    PS: je suis nul en VBA

  6. Danh on said:

    Bonjour,

    Je suis sous Microsoft office 2010 et sous Windows 7.
    Le code bloc dés le début :

    Set ppPres = ppApp.Presentations.Open(sPPTFileName)
    (Erreur d’exécution ‘-2147188160 (80048240)’:
    Presentations (unknown member) : Invalid request. Filename cannot exceed 255 charaters.

    Sachant que je n’ai modifier dans le code que cette partie :
    ‘Sélectionner le fichier PowerPoint à ouvrir
    sPPTFileName = TestAuto

    J’ai renommé “Getfilename” par le nom de mon fichier powerpoint qui est “TestAuto”.

    Je vous remercie d’avance.
    Danh

  7. mathieu on said:

    Bonjour ,
    Merci encore pour la macro, j ai un petit pbs quand je lance la macro
    quand j’arrive au code “‘ Code pour copier le graphique spécifié dans la présentation”
    la macro s’arrete et m affiche, “erreur de compilation , le type defini par l’utilisateur non defini”
    savez vous d’ou cela provient?

  8. Brat on said:

    Bonjour, j’ai un petit soucis avec votre code au niveau de la ligne :

    Set ppSlide = oPPT.slides(iSlideNo)

    Avec l’erreur suivante : slides (unknown member) integer out of range 1 is not in the valid range of 1 to 0.

    Je ne vois pas d’où cela peut venir.
    Merci

    • Brat on said:

      Ok C’est bon, j’avais oublié de créer les slides dans mon fichier PPT.

      Merci pour ce super code.

  9. sophie on said:

    Bonjour,
    j’ai récupérer une macro équivalent d’un collegue, j’ai ajouter 2 graphiques à la macro.
    pour le positionnement du graph : position horizontale, verticale, hauteur et largeur de l’image que je veux coller dans pwpt qui est en cm, je l’ai converti en pixel, mais mon graphique ne termine pas au “bon endroit”.
    je ne sais pas pourquoi, les bonnes coordonnées sont environ de 75% de la conversion que j’avais faite… et je ne comprends pas pourquoi, quelqu’un pourrait-il m’éclairer?

    merci

  10. Wale on said:

    Si tu savais combien de temps j’ai pu passer à chercher ce type de macro !!
    Un grand grand merci ! :)

    Pour que certains comprennent à quel point cette macro m’a été utile je vous explique la situation:
    J’ai un fichier Excel avec plus d’une trentaine d’onglets, chaque onglet contenant un graphique. J’avais besoin de copier 3 graphiques par slide en tant qu’image sur un modèle powerpoint contenant 10 slides.
    Je vous laisse imaginer le joie de refaire le même powerpoint chaque semaine et d’ajuster et positionner chaque graphique…

    Même si cet article date un peu, cet article est ultra utile !
    Encore merci! :)

  11. nicolas on said:

    Bonjour,

    article très intéressant, j’aimerais faire un coller image speciale

    pourriez vous m’aider

    Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Les balises HTML ne sont pas autorisés.