Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

mettre à jour un classeur worksheet dans une presentation ppt

  • Initiateur de la discussion Initiateur de la discussion bkcuf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

bkcuf

Guest
Bonjour,
je cherche désespément à mettre à jour une présentation ppt contenant un graph excel.
J’ai bien essayé la methode : set OLEFORMAT

Extrait du code :
With appPPT.ActivePresentation.Slides(12)
For Each Sh In .Shapes
'Verifié s'il s'agit d'un objet incorporé
If Sh.Type = msoEmbeddedOLEObject Then
'Vérifie s'il s'agit d'une feuille graphique
If Sh.OLEFormat.progID = "chart.8" Then
Set Gr = Sh.OLEFormat.Object

Pour “ msoEmbeddedOLEObject “ c’est ok
Mais pas pour Sh.OLEFormat.progID qui est vide
Set Gr = Sh.OLEFormat me revoie l’erreur ne gère pas automation
Merci d’avance pour votre aide
 
Re : mettre à jour un classeur worksheet dans une presentation ppt

Bonjour Bkcuf,
Juste pour être sûr :
Sur ta ligne :
If Sh.OLEFormat.progID = "chart.8" Then
Tu es certain que le chart.8 correspond à ton document où tu as récupérer le code autre part?
Si ca ne correspond pas, c'est normal que tu es un message d'erreur renvoyant cette ligne vide.
Bonne soirée
 
Re : mettre à jour un classeur worksheet dans une presentation ppt

Bonjour,

merci pour ta réponse

effectivement j'ai récupérer le code ailleurs mais
quand je fait "msgbow If Sh.OLEFormat.progID" il m'affiche j'ai rien.
ne devrait il pas contenir un type.
et c'est quand je bypass le contrôle " If Sh.OLEFormat.progID" qu'il me revoie un message d'erreur " ne gere pas automation " lors du set sh = Sh.OLEFormat.Object

merci d'avance
 
Re : mettre à jour un classeur worksheet dans une presentation ppt

Re bonsoir Bkcuf,
Difficile de t'aider avec juste ce bout de code même si c'est précisément celui qui te pose problème.
Après deux ou trois recherches, j'ai trouvé ce code :
Qui te permet de mettre en forme un graphique dans une présentation Powerpoint, peut être qu'il sera moins compliqué et adapté à ton besoin.

Sinon comme je te l'ai dit, je ne peux pas t'aider plus :s
Bonne nuit tout de même !
 
Re : mettre à jour un classeur worksheet dans une presentation ppt

slt vdavid
Merci pour l'attention et le code.
j'utilise déjà ce pour modifier un shape de type texbox.
que je m'explique dans un slide je dispose d'un shape texbox pour le titre et d'un autre qui represente un graphique excel composé de trois feuille.
je cherche à mettre ajour directement l'une des feuilles qui sert de base de donnée au pgraphique.
j'ai bien trouvé le bout de code énuméré plus haut mais ça ne marche pas a cause de l'objet OLEFormat.Object qui semble vide.
bon j'ai trouvé une solution alternative qui ne me satisfait pas dans le fond mais c'est le resultat qui compte.
je copy l'objet shape qui contient mes feuilles execl dans une feuilles excel
et dans ma feuille excel je procede au modification voulu puis je le copy de nouveau dans ma presentation
le code ci-dessous , Merci encore pour l'aide:
Sub MAJ_graphiqueDansPresentation(Xppt, Nlike, ShapeX)
Dim appPPT As PowerPoint.Application
Dim sh As PowerPoint.Shape
Dim LeftX, HeightX, WidthX, TopX
Dim wb As Workbook
Dim ShR As Shape
Dim slidesX As PowerPoint.Slides
Dim slid As PowerPoint.Slide
Dim SliDeDbut As Boolean
Dim Slidelast
Dim SlideCount
Dim SlideWork
SliDeDbut = False

'1) Selection et copy de l'objet sur la feuil excel
Set appPPT = GetObject(Class:="Powerpoint.Application")
appPPT.Visible = msoTrue
'appPPT.ActivePresentation.Slides(12).Select
Set slidesX = appPPT.ActivePresentation.Slides
SlideCount = slidesX.Count
For Each slid In appPPT.ActivePresentation.Slides
'MsgBox slid.Name & "\" & slid.SlideIndex
If SliDeDbut = True And _
Not slid.Name Like Nlike Then
slidesX.Item(Slidelast).Duplicate
SlideWork = SlideWork + 1
slidesX.Item(SlideWork).Name = "WORKING" & SlideWork
Exit For
ElseIf SlideCount = slid.SlideIndex _
And slid.Name Like Nlike Then
slid.Duplicate: SlideWork = slid.SlideIndex + 1
slidesX.Item(SlideWork).Name = "WORKING" & SlideWork
Exit For
End If

If slid.Name Like Nlike Then SliDeDbut = True
Slidelast = slid.SlideIndex
SlideWork = slid.SlideIndex
Next slid

Set sh = appPPT.ActivePresentation.Slides.Item(SlideWork).Shapes(ShapeX)
'récuperation de l'emplacement sur le slide
LeftX = sh.Left
HeightX = sh.Height
WidthX = sh.Width
TopX = sh.Top
'copie du shape
sh.Copy
'suppression de toute les shapes sur ma feuille au cas ou
S_SuppShapeFeuil1
Feuil1.Paste

'Acces a l'objet sur la feuille excel
Set wb = Workbooks(2)

'modification exemple ci-dessous
wb.Sheets(2).Range("A1").Value = "ce que vous voulez"
'defintion de l'objet sur ma feuille excel
Set ShR = Feuil1.Shapes(1)
'suppression l'objet a remplacer sur le slide de ma presentation powerpoint
sh.Delete
'copy de l'objet shape modifier sur feuil1
ShR.Copy
'coller sur ma presentation slidework= id de mon slide
appPPT.ActivePresentation.Slides.Item(SlideWork).Shapes.Paste
'suppression du shape sur ma feuil1
S_SuppShapeFeuil1

'ajuster les parametres de mis en forme du shape sur ma presentation powerpoint
Set sh = appPPT.ActivePresentation.Slides.Item(SlideWork).Shapes(ShapeX)
sh.Left = LeftX
sh.Height = HeightX
sh.Width = WidthX
sh.Top = TopX

Set ShR = Nothing
Set wb = Nothing
Set sh = Nothing
Set appPPT = Nothing

End Sub

au cas ou

Sub S_SuppShapeFeuil1()
Dim shdel As Shape

For Each shdel In Feuil1.Shapes
shdel.Delete
Next shdel
End Sub
+++ a la prochaine
 
Re : mettre à jour un classeur worksheet dans une presentation ppt

Bonjour à tous,

A moins de ne pas avoir tout compris !
Pourquoi utiliser du code pour mettre à jour un graphique !?

Du classeur Excel, tu fais un copier de ta zone graphique
Dans ton Powerpoint, tu fais un collage spécial et tu coche "Coller avec liaison"


Comme ça a chaque modification des valeurs du classeur, le graphique est lui aussi mis à jour

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…