Bonjour,
J'ai une presentation powerpoint sur laquelle j'ai copié par laisons des graphiques venant d'excel.
J'ai une macro qui se charge de mettre a jour les liaisons (car chaque mois le nom du fichiers excel change 112016 -> 122016)
Cette macro fonctionne bien, mais a chaque mise a jour elle ouvre chaque fichiers excel plusieurs fois et a chaque ouverture excel me demande si je veux mettre mes liens à jour ( et la réponse est nom a chaque fois).
Quand j'utilise excel seul, je sais la commande DisplayAlert = false empeche cette fenetre d'apparaitre, j'aimerais savoir si il existe une commande similaire pour powerpoint.
Merci d'avance.
la macro que j'utilise:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 Public Sub MaJ_modif_lien() Dim objPres As Presentation Dim objSld As Slide Dim objShp As Shape Dim strAncien As String Dim strNouveau As String Dim annee As Integer Dim mois As Integer Dim val_a As Long Dim val_n As Long ' suivant le mois on adapte les variables qui servent a modifier les liens Select Case Month(Date) Case 1 annee_a = Year(Date) - 1 mois_a = 11 annee_n = Year(Date) - 1 mois_n = 12 Case 2 annee_a = Year(Date) - 1 mois_a = 12 annee_n = Year(Date) mois_n = Month(Date) - 1 Case Else annee_a = Year(Date) mois_a = Month(Date) - 2 annee_n = Year(Date) mois_n = Month(Date) - 1 End Select val_a = mois_a * 10000 + annee_a val_n = mois_n * 10000 + annee_n 'val_a = mois_a + 100 * annee_a 'val_n = mois_n + 100 * annee_n If mois_n < 10 Then mois_n = "0" & mois_n If mois_a < 10 Then mois_a = "0" & mois_a '2016\RSS_102016.xlsm Application.DisplayAlerts = False Set objPres = ActivePresentation ' parcourt des diapositives de la présentation For Each objSld In objPres.Slides ' parcourt des formes des diapositives For Each objShp In objSld.Shapes ' on test si c'est un objet lié If objShp.Type = msoLinkedOLEObject Then ' si oui on modifie les dates dans le chemin strAncien = objShp.LinkFormat.SourceFullName 'strNouveau = Replace(strAncien, val_a, val_n) strNouveau = Replace(strAncien, annee_a, annee_n) strNouveau = Replace(strNouveau, mois_a, mois_n) 'strNouveau = Replace(strNouveau, ".xlsx", ".xlsm") MsgBox "ancien: " & strAncien & Chr(10) & "nouveau: " & strNouveau objShp.LinkFormat.SourceFullName = strNouveau 'on met à jour les liens objShp.LinkFormat.Update 'MsgBox "ancien: " & strAncien & Chr(10) & "nouveau: " & strNouveau DoEvents End If Next objShp Next objSld Application.DisplayAlerts = True End Sub
Partager