Salut,
J'ai un problème très particulier que je n'arrive pas à résoudre et c'est un vrai casse-tête pour moi
Je dispose d'une feuille excel composée de 16 graphiques (tous nommés), et je cherche à exporter tous ces graphiques vers un power point via un code VBA.
le problème: les exports marchent une fois sur deux. Et ce n'est pas forcément sur le même graphique que le problème a lieu. Un coup j'aurai un power point avec tous mes graphiques un autre j'en aurai seulement 2 ou 3.
C'est plus précisément, l’exécution de cette ligne qui pose problème
Code :
- ActiveSheet.ChartObjects("sexe" ).Copy
|
où "sexe" est le nom du graphique. L'erreur affichée lors de l'execution du code est : "erreur d'execution 1004. erreur definie par l'application ou par l'objet". Si j'exécute le code pas à pas, il me faut cliquer avec la souris sur n'importe quelle cellule de la feuille pour que ça marche.
PS : mon problème est aussi décrit ici : "http://www.mrexcel.com/f [...] point.html Malheureusement, pas de solution trouvée
Voici le code en question:
Code :
- Sub ModifierPresentationExistante()
- Dim date_jour As String
- date_jour = InputBox("Nom du fichier" )
- Set PptApp = CreateObject("Powerpoint.Application" )
- PptApp.Visible = True
- Set PptDoc = PptApp.Presentations.Open("C:\Users\document\excel\presentation.pptx" )
- Worksheets("Resultat" ).Activate
- With PptDoc
- 'Sexe
- Worksheets("Resultat" ).Activate
- ActiveSheet.ChartObjects("sexe" ).Copy
- 'Effectue un collage dans la 2eme diapositive
- .Slides(10).Shapes.PasteSpecial ppPasteMetafilePicture
-
- With .Slides(2).Shapes(.Slides(2).Shapes.Count)
- '.Name = "monTableau" 'Renomme l'objet collé
- .Left = 85 'position horizontale dans le slide
- .Top = 235 'position verticale dans le slide
- .Height = 225 'hauteur
- .Width = 650 'largeur
- End With
- 'age
- Worksheets("Resultat" ).Activate
- ActiveSheet.ChartObjects("age" ).Copy
- 'Effectue un collage dans la 2eme diapositive
- .Slides(17).Shapes.PasteSpecial ppPasteMetafilePicture
-
- With .Slides(17).Shapes(.Slides(17).Shapes.Count)
- '.Name = "monTableau" 'Renomme l'objet collé
- .Left = 325 'position horizontale dans le slide
- .Top = 220 'position verticale dans le slide
- .Height = 300 'hauteur
- .Width = 400 'largeur
- End With
- End With
- PptDoc.SaveAs Filename:="C:\Users\document\excel\presentation_" & date_jour & ".pptx"
- 'PptDoc.Close
- 'PptApp.Quit
- End Sub
|