Bonjour à tous,
J'imerai créer une macro depuis mon pPt qui permettrait de mettre à jour mon ppt via mon classeur XL.
J'ai un cinquantaine de slides à mettre à jour.
J'aimerai que la mise en forme et la taille reste la meme que celles du fichier xl.
Parmis les slides à metteà jour il ya des graphiques.
J'ai trouvé ce code mais je n'arrive pas à le comprendre.
Merci de vosréponses.
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub CommandButton1_Click() Set PPApp = GetObject(Class:="Powerpoint.Application") PPApp.ActiveWindow.ViewType = ppViewSlide PPApp.ActivePresentation.Slides(1).Select 'EXCEL CODE Sheets("test").Select Range("A20:F31").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy 'POWERPOINT CODE PPApp.ActiveWindow.View.PasteSpecial End Sub
Un détail, j'aimerai lancer la macro de mise à jour par rapport à mon fichier XL depuis mon PPT.
J'ai testé le code écrit ci-dessous mais cela ne fonctionne pas.
Merci pour vos réponses
En cherchant bien dans le forum, j'ai trouvé le code ci-dessous.
Dois je le coller dans un module de mon classeur vba xl ou 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
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 sub maj() Dim pwrPoint As PowerPoint.Application Dim Prez As PowerPoint.Presentation Dim targetMaj As String Dim Forme As PowerPoint.Shape Dim Diapo As PowerPoint.Slide Presentation = ThisWorkbook.Path & "\maPresentation.ppt" 'Le nouveau classeur lié targetMaj = ThisWorkbook.Path & "\monClasseurMisAJour.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 Prez.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.8" Then 'Modifie la source Forme.LinkFormat.SourceFullName = targetMaj 'Mise à jour Forme.LinkFormat.Update End If End If Next Next Prez.Save 'ferme la présentation Prez.Close 'ferme powerpoint pwrPoint.Quit end sub
Partager