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 :

Ligne de Code VBA pour actualiser des données sous PPT


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ligne de Code VBA pour actualiser des données sous PPT
    Bonjour,

    Je me permet de vous écrire car j'ai besoin d'éclairages de personnes maitrisant VBA (que je ne maitrise absolument pas).

    Dans le cadre de mon travail, j'ai des données à réactualiser sous ppt de manière récurrente, à partir d'excel.

    J'ai bidouillé quelques trucs sous VBA. Mais mon souci est le suivant :

    A partir du tableau excel, je dois actualiser la Feuille de données d'un Graph ppt.
    Les données de la Feuille de données ppt ont été copiées avec liaison au fichier excel.
    Mais au moment où la macro se termine les données ne réactualisent pas dans le ppt.

    En faisant un tour sur ce forum, j'ai trouvé les lignes suivantes mais ça ne marche pas.

    quelqu'un aurait une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set ppt = CreateObject("PowerPoint.Application")
    ppt.Visible = True
    Set Pres = ppt.Presentations.Open(Filename:="xxx")
    Pres.UpdateLinks
    Pres.Save
    ppt.Quit
    Merci beaucoup de votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Webmaster, Concepteur Base de données, Développeur SQL
    Inscrit en
    Mars 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster, Concepteur Base de données, Développeur SQL

    Informations forums :
    Inscription : Mars 2008
    Messages : 33
    Points : 25
    Points
    25
    Par défaut Actualiser Présentation Powerpoint à partir d'Excel
    Bonsoir,

    Si je comprends bien, tu as un document Powerpoint dont les données sont liées à des données Excel.
    Lorsque les données Excel changent, tu aimerais actualiser ton document Powerpoint par du code VBA, écrit dans ton classeur Excel.
    Tu peux essayer le code VBA suivant que tu mets dans un module de ton classeur Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub Actual_pptx()
    'Actualisation des graphiques dont les données sont issues d'un classeur Excel lié à la présentation Powerpoint
     
    Dim Pwt As PowerPoint.Application
    Dim Présen As PowerPoint.Presentation
    Dim Chemin_Présentation As String
    Dim dName As String
    Dim Diapo As PowerPoint.Slide
     
    Chemin_Présentation = ThisWorkbook.Path & "\Enquête de satisfaction.pptx"
    Set Pwt = CreateObject("PowerPoint.Application")
    Set Présen = Pwt.Presentations.Open(Chemin_Présentation, WithWindow:=msoFalse)
    'ce dernier parametre WithWindow:=msoFalse permet de masquer Powerpoint pendant l'exécution du code
    'Boucle sur les Slides de la présentation
    For Each Diapo In Présen.Slides
        dName = Diapo.Name              'nom du Slide
        'actualisation du graphique par les données issues d'Excel
        If Diapo.Shapes.Placeholders(1).PlaceholderFormat.Type = 7 Then
            Diapo.Shapes.Placeholders(1).LinkFormat.Update
        End If
        If Diapo.Shapes.Placeholders(2).PlaceholderFormat.Type = 7 Then
            Diapo.Shapes.Placeholders(2).LinkFormat.Update
        End If
    Next
    'sauvegarde la nouvelle version de la présentation
    Présen.Save
    'ferme la présentation
    Présen.Close
    'ferme powerpoint
    Pwt.Quit
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Bonjour,

    Un petit coup d'oeil par ici quelques sujets en dessous du tien.
    http://www.developpez.net/forums/d16...int-excel-vba/

    PS: @Chris50 utilise la balise code sinon c'est illisible
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

Discussions similaires

  1. [XL-2007] VBA : Macro pour actualiser des données automatiquement
    Par Devqnn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/04/2015, 14h17
  2. [Toutes versions] Macro ou code VBA pour effacer des caracteres et aller a la ligne dans un meme cellule
    Par ghisunit dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/04/2012, 15h29
  3. [XL-2007] Code VBA pour supprimer des lignes sous condition - problème
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2011, 09h09
  4. Code VBA pour importer des données vers Excel
    Par thanmirt dans le forum SDK
    Réponses: 1
    Dernier message: 09/04/2011, 17h53
  5. [XL-2003] Code VBA pour fusion des Dossiers
    Par em_bengue dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/04/2009, 00h03

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