Bonjour le forum,

J'ai récupéré un bout de code pour pouvoir modifier le nom du fichier en lien avec powerpoint.

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
Sub ChgLiaisonOle()
 
   Dim Slde As Slide, Shpe As Shape, lNucar As Long, sNewFile As String, sFichierOLE As String, sNewOLE As String
 
   For Each Slde In ActivePresentation.Slides
      For Each Shpe In Slde.Shapes
         If Shpe.Type = msoLinkedOLEObject Then
            sFichierOLE = Mid(Shpe.LinkFormat.SourceFullName, InStrRev(Shpe.LinkFormat.SourceFullName, "\"))
            sNewOLE = Replace(sFichierOLE, "FichierA", "Fichier1") 'pour le remplacement
            sNewFile = ActivePresentation.Path & sNewOLE
            Shpe.LinkFormat.SourceFullName = sNewFile
         End If
      Next Shpe
   Next Slde
   MsgBox sNewFile
End Sub
Je souhaiterais pouvoir faire le "Replace" par messageBox pour que chaque utilisateurs puisse faire la modification sans rentrer dans VBA.

Ce que je souhaite au final :
Je renomme mon "FichierA" en "Fichier1" (donc je perds le lien vers pptx). [Il existe aussi un fichierB, fichierC...qu'il faudra aussi renommer fichier2, fichier3...]
Je lance une macro qui m'ouvre un messageBox avec : "De quel fichier voulez-vous modifier le lien ?" (la réponse dans ce cas sera "FichierA" ou "FichierB"...) / "Comment voulez-vous renommer votre lien" (Là on saisie "Fichier1" ou "Fichier2"...).
En validant par OK, la macro remplace tous les liens s'apellant "FichierA" par "Fichier1"...

Je précise que ne suis pas programmeur (vous vous en doutez !) mais que à force de lire des bouts de codes j'arrive (plus ou moins) à adapter (des fois...).
Mais je ne sais pas faire de messageBox avec question/réponse...Et surtout, je ne sais pas si dans ce cas-là il faut mieux la macro sur Excel ou sur Pptx ???
Dans le cas du code ci-dessus, c'est sur pptx, mais est-ce la meilleur solution ?

Merci à vous de prendre le temps de me lire.
Cordialement,

Gilles