PowerPoint
Coco
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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...