Excel --> Powerpoint

nat54

XLDnaute Barbatruc
Bonjour,

A nouveau moi, ca fuse aujourd'hui :)

Voilà j'ai x graphiques sur Excel
et je dois les coller (mensuellement) dans une présentation ppt

J'aurai aimé :
- sélectionner un graphe A
- le coller dans la diapo n°1
- sélectionner un graphe B
- le coller dans la diapo n°2

....


début du code

Code:
sub export()

  ActiveSheet.ChartObjects("Graphique 3").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.ChartArea.Copy

???
    ActiveWindow.View.GotoSlide Index:=3


Les hics

1° J'arrive pas à faire ouvrir un ppt via la méthode habituelle
workbooks.open

2° Existe-t-il un moyen pour renommer les graphiques
car là j'ai graph 3, 5, 10..
rien qui se suit

ou pire car j'ai groupé avec des zones de texte , comment savoir le nom ?


MERCI
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Personne pour m'aider ?
Code:
Sub Export_ppt()

Sheets("Division Global Sales").Select

' external sales
    ActiveSheet.Shapes("Group 18").Select
    Selection.Copy

[color=blue]xxx[/color]
ActiveWindow.View.GotoSlide Index:=2
[color=blue]yyy[/color]


' internal sales
    ActiveSheet.Shapes("Group 21").Select
    Selection.Copy
    
[color=blue]xxx[/color]
ActiveWindow.View.GotoSlide Index:=3
[color=blue]yyy[/color]
    
' YTD 05 vs YTD 06
    ActiveSheet.Shapes("Group 22").Select
    Selection.Copy

[color=blue]xxx[/color]
ActiveWindow.View.GotoSlide Index:=4
[color=blue]yyy[/color]

End Sub


En fait il me manque :
- les xxx : ouvrir le powerpoint
- les yyy : collage special, image métafichier windows
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Code:
Sub insertionGraphiqueDansPowerPoint()
'necessite d'activer la reference Microsoft Powerpoint Object Library
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
Set PptDoc = PPT.Presentations.Open("C:\monfichier.ppt") 'ouverture fichier ppt

ActiveSheet.ChartObjects("Graphique 1").Copy 'copie du "Graphique 1" de la feuille active
PptDoc.Slides(3).Shapes.Paste 'collage dans le Slide3 du document Power Point

'compte le nombre de shapes dans le 3eme slide
'le dernier objet inséré correspond à l'index le plus élevé
NbShpe = PptDoc.Slides(3).Shapes.Count

With PptDoc.Slides(3).Shapes(NbShpe)
.Name = "monGraph" 'personnaliser le nom de l'image insérée
.Left = 150 'position horizontale dans le slide
.Top = 100 'position verticale dans le slide
.Height = 300 'hauteur image
.Width = 400 'largeur image
End With

'PptDoc.Save 'sauvegarder les modifications
'PptDoc.Close 'fermer le document ppt
'PPT.Quit 'fermer l'application powerPoint
End Sub

comment fait-on necessite d'activer la reference Microsoft Powerpoint Object Library ?
car c'est sûrement la source de l'erreur
type de l'application non définie 'PPT As PowerPoint.Application

MERCI
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Code:
Sub Export_Ppt()
    'necessite d'activer la reference Microsoft Powerpoint Object Library
    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("J:\Services\Finance Division CCF\Reporting-SIDEL\2006\Août\Sales report\CCF Division turnover 0606 Sales Report.ppt") 'ouverture fichier ppt
    
    ''''''' GRAPHIQUE 29
    Sheets("Division Global Sales").Select
    ActiveSheet.Shapes("Group 29").Copy
    PptDoc.Slides(2).Shapes.Paste 'collage dans le Slide3 du document Power Point
    
    'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
    NbShpe = PptDoc.Slides(2).Shapes.Count
    
    With PptDoc.Slides(2).Shapes(NbShpe)
        '.Name = "monGraph" 'personnaliser le nom de l'image insérée
        .Left = 100 'position horizontale dans le slide
        .Top = 50 'position verticale dans le slide
        .Height = 400 'hauteur image
        .Width = 600 'largeur image
    End With
    
    
    ''''''' GRAPHIQUE 23
    Sheets("Division Global Sales").Select
    ActiveSheet.Shapes("Group 23").Copy
    PptDoc.Slides(3).Shapes.Paste 'collage dans le Slide3 du document Power Point
    
    'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
    NbShpe = PptDoc.Slides(3).Shapes.Count
    
    With PptDoc.Slides(3).Shapes(NbShpe)
       ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
        .Left = 80 'position horizontale dans le slide
        .Top = 80 'position verticale dans le slide
        .Height = 400 'hauteur image
        .Width = 600 'largeur image
    End With
    
    
        ''''''' GRAPHIQUE 24
    Sheets("Division Global Sales").Select
    ActiveSheet.Shapes("Group 24").Copy
    PptDoc.Slides(4).Shapes.Paste 'collage dans le Slide3 du document Power Point
    
    'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
    NbShpe = PptDoc.Slides(4).Shapes.Count
    
    With PptDoc.Slides(4).Shapes(NbShpe)
       ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
        .Left = 80 'position horizontale dans le slide
        .Top = 80 'position verticale dans le slide
        .Height = 400 'hauteur image
        .Width = 600 'largeur image
    End With
    
    
    
            ''''''' GRAPHIQUE 25
    Sheets("Division Global Sales").Select
    ActiveSheet.Shapes("Group 25").Copy
    PptDoc.Slides(5).Shapes.Paste 'collage dans le Slide3 du document Power Point
    
    'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
    NbShpe = PptDoc.Slides(5).Shapes.Count
    
    With PptDoc.Slides(5).Shapes(NbShpe)
       ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
        .Left = 80 'position horizontale dans le slide
        .Top = 80 'position verticale dans le slide
        .Height = 400 'hauteur image
        .Width = 600 'largeur image
    End With
    
    
    
    'PptDoc.Save 'sauvegarder les modifications
    'PptDoc.Close 'fermer le document ppt
    'PPT.Quit 'fermer l'application powerPoint
End Sub


Ca marche bien :)

Le seul hic : il me faudrait le collage special, image métafichier windows
car sur mes groupes j'ai des zones de texte
or là ca me colle les zones écrites en police énOOOOrmes...

MERCI d'avance
 

mutzik

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Bonjour Nat, le fil, Michel

question : pourquoi tu ne fais pas un collage avec liaison, ce qui t'éviterait de refaire les copier / coller à chaque fois
Je l'ai fait avec une 30ne de graphs + titres + cellules.
1. Tu ouvres le fichier excel
2. le ppt, il te demandera si tu veux mettre à jour oui/non
la mise à jour de mon fichier ppt prend une 15ne de secondes, alors pourquoi s'en priver
 

nat54

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Ppt ne me propose pas le collage spécial avec liaison
peut-être parce que ce sont des groupes (graph+ zone txt)
et non des graphiques seuls...

manque juste une ligne au code VBA :(
pour dire image métafichier windows



ps : bonjour au Mosellan comme moi :)
 

mutzik

XLDnaute Barbatruc
Re : Excel --> Powerpoint

Re Nat,

As-tu essayé la solution dégroupage et ensuite collage avec liaison
Mon expérience m'a appris que les utilisateurs en veulent toujours plus à savoir :

constamment rajouter ou modifier des données de excel vers ppt, des objets en plus en moins ...
si chaque fois tu dois te replonger dans le code VBA, bonjour la galère
par contre avec l'option collag avec liaison, tu montres à l'utilisateur principal et s'il n'est pas trop gogol, il comprend et saura le faire lui même sans que tu interviennes.
C'est ce que j'ai fait ici, et l'appli tournes sans prob depuis + de 2 ans, sans aucune intervention de ma part
 

nat54

XLDnaute Barbatruc
Re : Excel --> Powerpoint

C'est moi qui utilise l'application, donc pas d'intervention extérieure.

J'ai sur mes graphes des zones de texte, actualisées avec formule d'où les groupes.
Je vais essayer en dégrouper mais je ne pense pas que ca marche...
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 779
Messages
2 092 046
Membres
105 168
dernier inscrit
makari69