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

VBA PowerPoint Discussion :

Modifier des liens Excel dans Powerpoint


Sujet :

VBA PowerPoint

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Curieux
    Inscrit en
    Janvier 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Curieux

    Informations forums :
    Inscription : Janvier 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Modifier des liens Excel dans Powerpoint
    Bonjour à tous,

    Le titre pose les bases de mon problème.

    J'ai créé un PowerPoint avec des graphiques et des tableaux liés à un seul et même fichier Excel qui sert de modèle de présentation.

    De ce fait, je suis amené à dupliquer ces deux documents (pptm et xlsx) en fonction des données que je souhaite rentrer. Mon problème est que le fichier PowerPoint reste lié au fichier Excel original or je souhaite qu'il soit lié au nouveau fichier excel.

    Ex : Dossier Modèle Contenant Présentation.pptm et Analyse.xlsx
    Copier/Coller et renommer =>
    Dossier1 Contenant Présentation1.pptm et Analyse1.xlsx (problème, présentation1.pptm est toujours lié à Analyse.xlsx.... )


    J'ai une centaine de lien à modifier et c'est donc très long de le faire à ma main. Je me suis donc tourner vers les macros et après des recherches et des essais infructueux, je me tourne vers vous pour savoir si vous avez déjà rencontrer ce problème et si vous pouvez m'aider à ce sujet.

    Macro Testée :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Sub lien()
     
    Dim pwrPoint As PowerPoint.Application
    Dim Prez As PowerPoint.Presentation
    Dim targetMaj As String
    Dim Ancienlien As String
    Dim Newlien As String
    Dim Nouveaulien As String
    Dim Forme As PowerPoint.Shape
    Dim Diapo As PowerPoint.Slide
     
    Presentation = "C:\Dropbox\Testmacro.pptm"
    'Le nouveau classeur lié
    targetMaj = "C:\Dropbox\Testmacro1.xls"
     
    'Set pwrPoint = CreateObject("PowerPoint.Application")
    'pwrPoint.Visible = msoTrue
    'Set Prez = pwrPoint.Presentations.Open(Presentation)
     
    'Boucle sur les Slide de la présentation
    For Each Diapo In ActivePresentation.Slides
        'Boucle sur les formes
        For Each Forme In Diapo.Shapes
            'Vérifie s'il s'agit d'un objet lié
            If Forme.Type = msoLinkedOLEObject Then
                'Vérifie si l'objet lié est un objet Excel
                If Forme.OLEFormat.ProgID = "Excel.Sheet.12" Or Forme.OLEFormat.ProgID = "Excel.chart.12" Then
                    'Modifie la source
     
                    'Ancienlien = Forme.LinkFormat.SourceFullName
                    Newlien = Mid(Ancienlien, InStrRev("Test"))
                    Nouveaulien = Replace(Ancienlien, macro1, marco)
                    If Ancienlien <> Nouveaulien Then
                    Forme.LinkFormat.SourceFullName = Nouveaulien
     
     
                    'Forme.LinkFormat.SourceFullName = targetMaj
     
                    'Mise à jour
                    Forme.LinkFormat.Update
            End If
        End If
        Next
    Next
     
    'Prez.Save
    'sauvearde la présentation
    'Prez.Close
    'ferme powerpoint
    'pwrPoint.Quit
    End Sub
    Macro testée :

    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
    Sub MAJLIEN()
     
    Dim oldPath As String, newPath As String
    Dim pptPres As Presentation, pptSlide As Slide, pptShape As Shape
     
        newPath = "C:\Dropbox\TestMacro1.xlsx"
        oldPath = "C:\Dropbox\TestMacro.xlsx"
     
        'loop on each slides, and on each shapes
       Set pptPres = ActivePresentation
        For Each pptSlide In pptPres.Slides
            For Each pptShape In pptSlide.Shapes
                If pptShape.Type = msoLinkedOLEObject Then 'if it is a "linked object" then
                   If pptShape.LinkFormat.SourceFullName = oldPath Then
                    pptShape.LinkFormat.SourceFullName = newPath 'modify the link
                   pptShape.LinkFormat.Update 'update the link
                   End If
                End If
            Next pptShape
        Next pptSlide
     
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, peut-être dans la FAQ et Piloter PowerPoint

    P.-S. : Balise ton code stp

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Je me permets de relancer ce sujet car j'ai exactement la même problématique.

    J'ai en effet une présentation powerpoint qui comporte différents tableaux excel liés pour faire un reporting financier.
    Les tableaux excel sont tous dans le même fichier excel.

    Mon fichier powerpoint et mon fichier excel sont enregistrés dans le même dossier.
    Je suis cependant amené à déplacer le dossier contenant ces 2 fichiers. Les liens sont donc cassés.

    Avez-vous trouvé une solution à votre problématique ?

    Peut-on faire une macro qui préciserait que les liens figurent dans le dossier source du fichier powerpoint ? Cela éviterait de refaire les liens à chaque fois que le dossier est déplacé ?

    Merci pour votre aide

    Bien cordialement

Discussions similaires

  1. [PPT-2010] Rafraichir lien excels dans powerpoint sans bouton
    Par jeremf3 dans le forum Powerpoint
    Réponses: 1
    Dernier message: 15/08/2015, 17h27
  2. Réponses: 12
    Dernier message: 22/08/2013, 19h06
  3. Réponses: 4
    Dernier message: 07/06/2012, 00h29
  4. modifier des fichiers Excel compris dans un jar
    Par soulspeace dans le forum Eclipse
    Réponses: 1
    Dernier message: 24/06/2009, 10h28
  5. Mettre à jour les liens des graphiques d'Excel dans Powerpoint
    Par illight dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/06/2007, 15h17

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