PowerPoint
Coco
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
alors voilà, je dois réaliser un powerPoint! Tout allait bien , tout fonctionné bien et du jour au lendemain, j'ai cette erreur : ShapeRange.Select: Invalid request. To select a shape, its view must be active.
Je ne comprend pas, pcq ma macro je ne l'ai pas touchée et avant ça s'executait très bien et ça copier très bien mes tableaux et mes graphiques. Et là d'un seul coup j'ai cette erreur. Voici un bout de mon code (je ne vais pas vous mettre les diapo, seulement la première car les autres fonctionnent pareil)
Je supprime dèjà toutes les diapos à partir de la 3 et ensuite, je fais un copier d'une plage de données ou tableau et je le colle dans les diapos.
Sub PowerPoint
' Necessite d'activer la reference Microsoft Powerpoint Object Library
' Variables
Dim PPT As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim NbShpe As Byte
Set PPT = CreateObject("Powerpoint.Application") 'creation session PowerPoint
PPT.Visible = True 'l'application sera visible
Set PptDoc = PPT.Presentations.Open(ThisWorkbook.Path & "/PrésentationReportingFinancier.pptx") 'ouverture fichier ppt
n = PptDoc.Slides.Count
' Supprime toutes les diapos sauf les 2 premières
While n <> 2
PptDoc.Slides(3).Delete
n = PptDoc.Slides.Count
Wend
With PptDoc
' Créer diapo 3
Set Diapo = .Slides.Add(Index:=3, Layout:=ppLayoutBlank)
Sheets("Paramètres").Activate
Set maPlage = Range(Cells(13, 2), Cells(17, 4))
maPlage.Select
Selection.Copy
Diapo.Select
Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
NbShpe = PptDoc.Slides(3).Shapes.Count
With PptDoc.Slides(3).Shapes(NbShpe)
.Left = 100 'position horizontale dans le slide
.Top = 150 'position verticale dans le slide
.Height = 150 'hauteur image
.Width = 280 'largeur image
End With
Set shpe = Diapo.Shapes. _
AddTextbox(msoTextOrientationHorizontal, _
150, 20, 500, 50) 'Taille
' Titre
With shpe.TextFrame.TextRange
.Text = "INFORMATION MARCHE"
.Font.Name = "arial"
.Font.Size = 36
.Font.Color.RGB = RGB(0, 91, 187) ' Couleur
End With
End With
End Sub
l'erreur d'execution se fait à la ligne : Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
Merci d'avance pour votre aide
alors voilà, je dois réaliser un powerPoint! Tout allait bien , tout fonctionné bien et du jour au lendemain, j'ai cette erreur : ShapeRange.Select: Invalid request. To select a shape, its view must be active.
Je ne comprend pas, pcq ma macro je ne l'ai pas touchée et avant ça s'executait très bien et ça copier très bien mes tableaux et mes graphiques. Et là d'un seul coup j'ai cette erreur. Voici un bout de mon code (je ne vais pas vous mettre les diapo, seulement la première car les autres fonctionnent pareil)
Je supprime dèjà toutes les diapos à partir de la 3 et ensuite, je fais un copier d'une plage de données ou tableau et je le colle dans les diapos.
Sub PowerPoint
' Necessite d'activer la reference Microsoft Powerpoint Object Library
' Variables
Dim PPT As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim NbShpe As Byte
Set PPT = CreateObject("Powerpoint.Application") 'creation session PowerPoint
PPT.Visible = True 'l'application sera visible
Set PptDoc = PPT.Presentations.Open(ThisWorkbook.Path & "/PrésentationReportingFinancier.pptx") 'ouverture fichier ppt
n = PptDoc.Slides.Count
' Supprime toutes les diapos sauf les 2 premières
While n <> 2
PptDoc.Slides(3).Delete
n = PptDoc.Slides.Count
Wend
With PptDoc
' Créer diapo 3
Set Diapo = .Slides.Add(Index:=3, Layout:=ppLayoutBlank)
Sheets("Paramètres").Activate
Set maPlage = Range(Cells(13, 2), Cells(17, 4))
maPlage.Select
Selection.Copy
Diapo.Select
Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
NbShpe = PptDoc.Slides(3).Shapes.Count
With PptDoc.Slides(3).Shapes(NbShpe)
.Left = 100 'position horizontale dans le slide
.Top = 150 'position verticale dans le slide
.Height = 150 'hauteur image
.Width = 280 'largeur image
End With
Set shpe = Diapo.Shapes. _
AddTextbox(msoTextOrientationHorizontal, _
150, 20, 500, 50) 'Taille
' Titre
With shpe.TextFrame.TextRange
.Text = "INFORMATION MARCHE"
.Font.Name = "arial"
.Font.Size = 36
.Font.Color.RGB = RGB(0, 91, 187) ' Couleur
End With
End With
End Sub
l'erreur d'execution se fait à la ligne : Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
Merci d'avance pour votre aide
A voir également:
- Shapes.pastespecial
- Powerpoint viewer - Télécharger - Présentation
- Insérer video powerpoint - Guide
- Powerpoint 2013 - Télécharger - Présentation
- Powerpoint portrait - Guide
- Pagination powerpoint - Guide
3 réponses
Bonjour,
Remplace:
par:
Remplace:
Diapo.Select Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select
par:
Diapo.Shapes.Paste
J'ai fait un essai avec une nouvelle présentation, cela fonctionne. Je pense que cela se situe au niveau du slide 3
Option Explicit Sub essai() ' Necessite d'activer la reference Microsoft Powerpoint Object Library ' Variables Dim PPT As PowerPoint.Application Dim PptDoc As PowerPoint.Presentation Dim NbShpe As Byte Dim n, Diapo, maPlage, shpe Set PPT = CreateObject("Powerpoint.Application") 'creation session PowerPoint PPT.Visible = True 'l'application sera visible Set PptDoc = PPT.Presentations.Add n = PptDoc.Slides.Count ' Supprime toutes les diapos sauf les 2 premières 'While n <> 2 'PptDoc.Slides(3).Delete 'n = PptDoc.Slides.Count 'Wend With PptDoc ' Créer diapo 3 Set Diapo = .Slides.Add(Index:=1, Layout:=ppLayoutBlank) Sheets("Feuil1").Activate Set maPlage = Range(Cells(13, 2), Cells(17, 4)) maPlage.Select Selection.Copy Diapo.Select Diapo.Shapes.PasteSpecial(ppPasteDefault, link:=True).Select NbShpe = Diapo.Shapes.Count 'Renomme et met en forme l'objet collé With Diapo.Shapes(NbShpe) .Left = 100 'position horizontale dans le slide .Top = 150 'position verticale dans le slide .Height = 150 'hauteur image .Width = 280 'largeur image End With Set shpe = Diapo.Shapes. _ AddTextbox(msoTextOrientationHorizontal, _ 150, 20, 500, 50) 'Taille ' Titre With shpe.TextFrame.TextRange .Text = "INFORMATION MARCHE" .Font.Name = "arial" .Font.Size = 36 .Font.Color.RGB = RGB(0, 91, 187) ' Couleur End With End With End Sub
je viens d'essayer et ça ne marche pas, toujours le même message d'erreur.... Je ne comprends vraiment pas...