Bonjour,
j'ai un problème assez ennuyeux, comme vous allez le lire.
Le sujet : indiqué dans le titre !
J'ai donc inséré une diapositive Powerpoint dans Excel. Je souhaite effectuer une modification (mineure : changer la couleur d'un élément à l'intérieur en fonction d'une condition réalisée dans une feuille Excel).
Pour le faire "à la main, c'est simple" :
1°) Click droit sur la diapo puis "Modifier" : On pass een modification d ela feuille
2°) Selection de l'objet, propriétés, et change rla couleur.
Mais bien sûr, je souhaite réaliser cette modification sous VBA !
J'ai donc utilisé l'enregisterue de macros pour programme rles 2 étapes :
1°) Carte.Shapes("Object 3" ).Select (Carte est le nom de la diapo)
Selection.Verb Verb:=xlOpen
=> cette partie dans le code VBA marche bien, la diapo s'ouvre sans problèmes en modification
2°) MAIS c'est là que j'ai le problème : dès que la diapo est ouverte en modification (directement dans Excel donc, pas dans Powerpoint...), l'enregistreur de macro ne marche plus, on dirait que je suis dans une autre application (Powerpoint ?). Il faut que je le relance une seconde fois, et là il enregitre les modifications... Mais alors que la première macro s'enregistre dans un module dans mon fichier TOTO.xls, la seconde est censée s'enregistrer dans "PRESENTATION dans TOTO.xls", et je ne retrouve pas le code généré !
Mais je sais qu'il ressemble à :
ActiveWindow.Selection.SlideRange.Shapes("Group 395" ).Select
With ActiveWindow.Selection.ShapeRange
.Fill.Visible = msoTrue
.Fill.Solid
.Fill.ForeColor.RGB = RGB(255, 102, 153)
End With
donc du code normal pour modifier une présentation.
MON PROBLEME : si j'enchaine les 2 codes, VBA plante dès le début de la seconde partie.
COMMENT arriver à réaliser cette intégration afin de modifier cet objet OLE inséré dans excel par VBA ???
Merci d'avance !
Olivier