IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mise à jour PowerPoint via VBA [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chargé études
    Inscrit en
    Juin 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2022
    Messages : 22
    Par défaut Mise à jour PowerPoint via VBA
    Bonjour à tous,

    Je vous explique sachant que je suis archi novice et donc il pourra peut-être manquer des éléments pour que vous puissiez m'aider. Ce n’est pas moi qui ai écrit cette macro. Je tente de la comprendre pour mettre à jour un document.

    J'ai un document powerpoint «presentation » qui se met à jour via un fichier excel "donnees".
    Dans ce fichier "donnees", il y a une macro et lorsque je la lance, cela ouvre le modele de ppt, met à jour tous les éléments chiffrés pour un territoire donné puis enregistre sous pdf le ppt et aussi en ppt et ainsi de suite jusqu'à la fin de la boucle. Cela permet de générer une centaine de territoires en 2 formats (pdf et ppt).
    Lorsque je lance la macro, tout se met à jour SAUF une carte (qui correspond à « image 11 » de mon ppt). Et la subtilité c'est que la carte est à jour dans le format ppt enregistré mais pas dans le format pdf.
    Je n’arrive pas du tout à voir où est le problème. Les cartes sont bien toutes stockées dans C:\temp\test\images\

    Je n’ai aucun message d’erreur dans la macro. Elle tourne parfaitement, fait tout le job sauf cette mise à jour de carte uniquement dans le pdf.

    Ci-après le morceau de la macro.
    'OUVRIR LE DOCUMENT MODELE
    '-------------------------------------------------------------
    Set ppt = New PowerPoint.Application
    Set myPPT = ppt.Presentations.Open(pathPPT) ', WithWindow:=False) 'Ouvre la présentation modèle en la masquant

    'Mettre a jour l'image
    code_territoire = ThisWorkbook.Sheets("accueil").Range("G17").Value
    url_image = "C:\temp\test\images\" & code_territoire & ".png"

    'MsgBox (url_image)

    ppt.ActivePresentation.Slides(1).Shapes("image 11").LinkFormat.SourceFullName = url_image

    'MsgBox (ThisWorkbook.Sheets("t0").Range("A2"))

    'MISE A JOUR DES LIENS VERS LES FICHIERS EXCEL
    '-------------------------------------------------------------
    ppt.ActivePresentation.UpdateLinks

    ' la procédure ci-dessous est optionnelle. Si on souhaite rompre les liens. Le problème constaté, la police de caractère change légèrement, mais point positif, plus de message sur la mise à jour des liens.
    'ppt.ActivePresentation.Slides(1).Shapes("t1").LinkFormat.BreakLink 'Rompre le lien pour éviter la demande de mise à jour de données
    'ppt.ActivePresentation.Slides(1).Shapes("t2").LinkFormat.BreakLink

    'C17
    'SAUVEGARDER ET TOUT FERMER
    '-------------------------------------------------------------
    pathPPTfinal = "C:\temp\test\" & ThisWorkbook.Sheets("t0").Range("A2") 'Définir le nom / chemin du fichier à sauvegarder, on pointe sur la feuille t0 pour aller chercher la valeur
    'pathPPTfinal = "C:\temp\test\presentation2.pptx"

    myPPT.SaveAs (pathPPTfinal & ".pptx")
    attendre (1) 'On attend juste 1 seconde pour éviter les bug lors de l'enregistrement. Voir la fonction attendre plus bas si bug
    ppt.ActivePresentation.SaveAs pathPPTfinal & ".pdf", ppSaveAsPDF 'sauvegarder en pdf
    attendre (1)
    ppt.ActivePresentation.Close
    'myPPT.Close 'Fermeture du fichier

    Next 'Fin de la boucle, prochain

    ppt.Quit 'Fermeture de powerpoint. On fait le choix de bien tout fermer et de rouvrir à nouveau même si cela n'est pas le plus optimisé

    MsgBox ("La procédure est terminée")


    End Sub

    Merci d’avance pour l’aide que vous m’apporterez 😉

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 249
    Par défaut
    hello,
    il faut attendre un peu après la mise à jour des liens. Tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ppt.ActivePresentation.UpdateLinks
    attendre(1)
    Ami calmant, J.P

  3. #3
    Membre averti
    Femme Profil pro
    Chargé études
    Inscrit en
    Juin 2022
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2022
    Messages : 22
    Par défaut
    Merci :-)

    Au final j'ai fermé le ppt mis à jour puis rouvert le ppt et généré le pdf au lieu de générer le pdf directement à partir du ppt mis à jour.

    Et là cela fonctionne!

    Merci encore!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jour champ via requête MAJ
    Par amely78 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/10/2008, 23h19
  2. Réponses: 1
    Dernier message: 19/11/2007, 19h27
  3. Mise à jour Access via Excel
    Par sl1980 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/10/2007, 18h43
  4. Mise à jour SQL via PHP
    Par KillahBen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 12/09/2007, 10h55
  5. Problème sous powerpoint via VBA
    Par seb_de_quimper dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 02/04/2007, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo