[RESOLU] Excel --> powerpoint

Excel --> powerpoint [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 28-08-2006 à 14:40:20    

BONJOUR :)
 
Le problèmz
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
 
Le pb : ce n'est pas des graphiques "seuls" mais des groupes càd un graphe et plusieurs zones de texte groupés
Donc je dois utiliser pour coller sous ppt l'image métafichier windows
 
C'est LE truc que je n'arrive pas à traduire en VBA
 
le code actuel

Code :
  1. Sub Export_Ppt()
  2.     'necessite d'activer la reference Microsoft Powerpoint Object Library
  3.     Dim PPT As PowerPoint.Application
  4.     Dim PptDoc As PowerPoint.Presentation
  5.     Dim NbShpe As Byte
  6.    
  7.     Set PPT = CreateObject("Powerpoint.Application" ) 'creation session PowerPoint
  8.     PPT.Visible = True 'l'application sera visible
  9.     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
  10.    
  11.     ''''''' GRAPHIQUE 29
  12.     Sheets("Division Global Sales" ).Select
  13.     ActiveSheet.Shapes("Group 29" ).Copy
  14.     PptDoc.Slides(2).Shapes.Paste 'collage dans le Slide3 du document Power Point
  15.    
  16.     'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
  17.     NbShpe = PptDoc.Slides(2).Shapes.Count
  18.    
  19.     With PptDoc.Slides(2).Shapes(NbShpe)
  20.         '.Name = "monGraph" 'personnaliser le nom de l'image insérée
  21.         .Left = 100 'position horizontale dans le slide
  22.         .Top = 50 'position verticale dans le slide
  23.         .Height = 400 'hauteur image
  24.         .Width = 600 'largeur image
  25.     End With
  26.    
  27.    
  28.     ''''''' GRAPHIQUE 23
  29.     Sheets("Division Global Sales" ).Select
  30.     ActiveSheet.Shapes("Group 23" ).Copy
  31.     PptDoc.Slides(3).Shapes.Paste 'collage dans le Slide3 du document Power Point
  32.    
  33.     'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
  34.     NbShpe = PptDoc.Slides(3).Shapes.Count
  35.    
  36.     With PptDoc.Slides(3).Shapes(NbShpe)
  37.        ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
  38.         .Left = 80 'position horizontale dans le slide
  39.         .Top = 80 'position verticale dans le slide
  40.         .Height = 400 'hauteur image
  41.         .Width = 600 'largeur image
  42.     End With
  43.    
  44.    
  45.         ''''''' GRAPHIQUE 24
  46.     Sheets("Division Global Sales" ).Select
  47.     ActiveSheet.Shapes("Group 24" ).Copy
  48.     PptDoc.Slides(4).Shapes.Paste 'collage dans le Slide3 du document Power Point
  49.    
  50.     'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
  51.     NbShpe = PptDoc.Slides(4).Shapes.Count
  52.    
  53.     With PptDoc.Slides(4).Shapes(NbShpe)
  54.        ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
  55.         .Left = 80 'position horizontale dans le slide
  56.         .Top = 80 'position verticale dans le slide
  57.         .Height = 400 'hauteur image
  58.         .Width = 600 'largeur image
  59.     End With
  60.    
  61.    
  62.    
  63.             ''''''' GRAPHIQUE 25
  64.     Sheets("Division Global Sales" ).Select
  65.     ActiveSheet.Shapes("Group 25" ).Copy
  66.     PptDoc.Slides(5).Shapes.Paste 'collage dans le Slide3 du document Power Point
  67.    
  68.     'compte le nombre de shapes dans le 3eme slide ; le dernier objet inséré correspond à l'index le plus élevé
  69.     NbShpe = PptDoc.Slides(5).Shapes.Count
  70.    
  71.     With PptDoc.Slides(5).Shapes(NbShpe)
  72.        ' .Name = "monGraph" 'personnaliser le nom de l'image insérée
  73.         .Left = 80 'position horizontale dans le slide
  74.         .Top = 80 'position verticale dans le slide
  75.         .Height = 400 'hauteur image
  76.         .Width = 600 'largeur image
  77.     End With
  78.    
  79.    
  80.    
  81.     'PptDoc.Save 'sauvegarder les modifications
  82.     'PptDoc.Close 'fermer le document ppt
  83.     'PPT.Quit 'fermer l'application powerPoint
  84. End Sub


 
 
MERCI


Message édité par Profil supprimé le 29-08-2006 à 16:29:11
Reply

Marsh Posté le 28-08-2006 à 14:40:20   

Reply

Marsh Posté le 28-08-2006 à 15:53:51    

Personne ne connait l'équivalent de collage spécial image métafichier windows ?
SNIF

Reply

Marsh Posté le 29-08-2006 à 09:09:44    

Mon pb est insolvable ?

Reply

Marsh Posté le 29-08-2006 à 10:42:16    

Salut,
 
  En regardant vite fait dans la doc PasteSpecial, j'ai trouvé:

Code :
  1. PasteSpecial, méthode
  2. Voir aussiS'applique àExempleDétailsColle le contenu du Presse-papiers dans un format spécial. Bien que la syntaxe soit identique pour tous les objets de la liste S'applique à, la méthode PasteSpecial présente un comportement quelque peu différent selon les objets qui l'appellent.
  3. Objet Comportement
  4. Shapes   Ajoute la forme à la collection de formes en utilisant le format spécifié. Si le type de données spécifié correspond à du texte, une nouvelle zone de texte est créée avec ce texte. Si le collage réussit, la méthode PasteSpecial renvoie un objet ShapeRange représentant le groupe de formes collé.
  5. TextRange  Remplace la plage de texte par le contenu du Presse-papiers au format spécifié. Les types de données valides pour cet objet sont ppPasteText, ppPasteHTML et ppPasteRTF (tout autre format génère une erreur). Si le collage réussit, cette méthode renvoie un objet TextRange représentant la plage de texte collée.
  6. View  Colle le contenu actuel du Presse-papiers dans l'affichage représenté par l'objet View. Les modes d'affichage valides pour la méthode PasteSpecial sont identiques à ceux de la méthode Paste. Si un type de données ne peut pas être collé dans un affichage précis (collage d'une image dans le mode Trieuse de diapositives, par exemple), cela produit une erreur.
  7. expression.PasteSpecial(DataType, DisplayAsIcon, IconFileName, IconIndex, IconLabel, Link)
  8. expression      Obligatoire. Expression qui renvoie l'un des objets ci-dessus.
  9. DataType    Argument de type PpPasteDataType facultatif. Représente un format pour le contenu du Presse-papiers inséré dans le document. La valeur par défaut dépend du contenu du Presse-papiers. Une erreur se produit si le type de données spécifié dans l'argument DataType n'est pas pris en charge par le contenu du Presse-papiers.
  10. Les constantes PpPasteDataType possibles sont : 
  11. ppPasteBitmap
  12. ppPasteDefault Valeur par défaut
  13. ppPasteEnhancedMetafile
  14. ppPasteGIF
  15. ppPasteHTML
  16. ppPasteJPG
  17. ppPasteMetafilePicture
  18. ppPasteOLEObject
  19. ppPastePNG
  20. ppPasteRTF
  21. ppPasteShape
  22. ppPasteText
  23. DisplayAsIcon    Argument de type MsoTriState facultatif. La valeur MsoTrue permet d'afficher l'objet (ou le lien) incorporé sous forme d'icône.
  24. Les constantes MsoTriState possibles sont : 
  25. msoCTrue Ne s'applique pas à cette méthode.
  26. msoFalse Valeur par défaut. N'affiche pas l'objet (ou le lien) incorporé sous forme d'icône.
  27. msoTriStateMixed Ne s'applique pas à cette méthode.
  28. msoTriStateToggle Ne s'applique pas à cette méthode.
  29. msoTrue Affiche l'objet (ou le lien) incorporé sous forme d'icône.
  30. IconFileName     Argument de type String facultatif. Si l'argument DisplayAsIcon a pour valeur msoTrue, cet argument correspond au chemin d'accès et au nom du fichier dans lequel l'icône à afficher est stockée. Si l'argument DisplayAsIcon a pour valeur msoFalse, cet argument n'est pas pris en compte.
  31. IconIndex     Argument de type Long facultatif. Si l'argument DisplayAsIcon    a pour valeur msoTrue, cet argument correspond au nombre de l'icône que vous souhaitez utiliser dans le fichier programme spécifié par l'argument IconFilename. Les icônes apparaissent dans la boîte de dialogue Changer d'icône, accessible depuis la barre d'outils standard (menu Insertion, commande Objet, option Nouvel objet) : 0 (zéro) correspond à la première icône, 1 à la deuxième, etc. Si vous omettez cet argument, la première icône (icône par défaut) est utilisée. Si l'argument DisplayAsIcon a pour valeur msoFalse, cet argument n'est pas pris en compte. Si l'argument IconIndex ne se trouve pas dans une plage valide, l'icône par défaut (c.-à-d. l'index 0) est utilisée.
  32. IconLabel     Argument de type String facultatif. Si l'argument DisplayAsIcon    a pour valeur msoTrue, cet argument représente le texte qui apparaît sous l'icône. Si ce texte est absent, Microsoft PowerPoint génère une étiquette d'icône basée sur le contenu du Presse-papiers. Si l'argument DisplayAsIcon a pour valeur msoFalse, cet argument n'est pas pris en compte.
  33. Link    Argument de type MsoTriState facultatif. Détermine si un lien vers le fichier source du contenu du Presse-papiers doit être créé. Une erreur se produit si le contenu du Presse-papiers ne prend pas en charge les liens.
  34. Les constantes MsoTriState possibles sont : 
  35. msoCTrue Ne s'applique pas à cette méthode.
  36. msoFalse Valeur par défaut. Ne crée aucun lien vers le fichier source du contenu du Presse-papiers.
  37. msoTriStateMixed Ne s'applique pas à cette méthode.
  38. msoTriStateToggle Ne s'applique pas à cette méthode.
  39. msoTrue Crée un lien vers le fichier source du contenu du Presse-papiers.
  40. Note
  41. Une erreur se produit si le Presse-papiers ne contient aucune donnée au moment où la méthode PasteSpecial est appelée.


 
La valeur "ppPasteEnhancedMetafile" de l'argument "PpPasteDataType " devrait correspondre non?
 
PS:  :non: On dit: un problème insoluble. :D  


---------------
J'ai un message.."Cliquez OK pour continuer."...Qu'est ce que je fais ?
Reply

Marsh Posté le 29-08-2006 à 11:01:44    

ppPasteEnhancedMetafile : excellent :)
 
ps 1 : je n'ai pas la doc..
 
ps 2 : désolée pour la faute de français :d

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed