copier coller zone de texte ppt vb

copier coller zone de texte ppt vb - VB/VBA/VBS - Programmation

Marsh Posté le 29-01-2013 à 14:55:58    

Bonjour,
 
J'aimerais copier/coller un titre (ou zone de texte) dans un powerpoint, à partir d'une fonction dans excel, d'une diapo à l'autre (de Diapo1 à Diapo2).
Je m'explique : je crée automatiquement des graphes, que je copie colle dans un powerpoint. Ce dernier est déjà mis en page (image de fond, titre ...) et sur la Diapo1 (qui correspond à l'index 2), il y a une zone de texte. J'ajoute une diapo (Diapo2), et j'aimerais copier coller cette zone de texte...
 
mon code  :  

Code :
  1. Public Function ppt()
  2.     Dim ppapp As PowerPoint.Application
  3.     Dim Pres As PowerPoint.Presentation
  4.     Dim Diapo1 As PowerPoint.Slide
  5.     Dim Diapo2 As PowerPoint.Slide
  6.     Dim handle As Long
  7.     Dim nomFichier As String
  8.    
  9.     handle = 0
  10.     'On ouvre le powerpoint
  11.     Set ppapp = CreateObject("PowerPoint.Application" )
  12.    
  13.    
  14.    
  15.     ' Et on lui dit de quelle présentation il s'agit :
  16.     nomFichier = OuvrirUnFichier(handle, "Sélectionner le masque", 1, "Microsoft Powerpoint", "ppt" )
  17.    
  18.     ppapp.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
  19.    
  20.     Set Pres = ppapp.Presentations.Open(nomFichier)
  21.     ppapp.Activate
  22.    
  23.     'Avec la présentation créée
  24.     With Pres
  25.        
  26.         'on dit que la 2ème diapo a pour nom Diapo1
  27.         Set Diapo1 = .Slides(2)
  28.        
  29.         'on ajoute une diapositive
  30.         Set Diapo2 = .Slides.Add(Index:=3, Layout:=ppLayoutBlank)
  31.         'On copie/colle la zone de texte
  32.         '...
  33.        
  34.         ' Copie du graphe excel
  35.         Workbooks("Comparaison.xls" ).Sheets("Comparaison de la taille" ).Activate
  36.         ActiveSheet.ChartArea.Select
  37.         ActiveSheet.ChartArea.Copy
  38.         ' On colle le graphe dans la présentation et on le redimensionne
  39.         Set Shape1 = Diapo1.Shapes.Paste
  40.         Shape1.Top = 40
  41.         Shape1.Left = 20
  42.         Shape1.Width = 430
  43.         Shape1.Height = 430
  44.        
  45.         ' Copie du graphe excel
  46.         Workbooks("Comparaison.xls" ).Sheets("Evolution de la taille" ).Activate
  47.         ActiveSheet.ChartArea.Select
  48.         ActiveSheet.ChartArea.Copy
  49.         ' On colle le graphe dans la présentation et on le redimensionne
  50.         Set Shape2 = Diapo2.Shapes.Paste
  51.         Shape2.Top = 40
  52.         Shape2.Left = 20
  53.         Shape2.Width = 430
  54.         Shape2.Height = 430
  55.        
  56.     End With
  57.    
  58.     ppapp.Activate
  59.      
  60. End Function


 
J'ai essayé en enregistrant une macro, mais cela ne fonctionne pas...  
 
quelque chose dans le genre :

Code :
  1. Diapo1.activate
  2. Diapo1.select("rectangle 2" )
  3. selection.copy
  4. Diapo2.activate
  5. Diapo2.shapes.paste


 :??:  
 
merci à ceux qui me répondront  :jap:


Message édité par minimoack le 30-01-2013 à 09:08:50
Reply

Marsh Posté le 29-01-2013 à 14:55:58   

Reply

Marsh Posté le 30-01-2013 à 09:57:19    

C'est bon, c'est bon, j'ai trouvé toute seule :)
 

Code :
  1. Diapo1.Shapes("Rectangle 2" ).Copy
  2. Diapo2.Select
  3. Diapo2.Shapes.Paste


Message édité par minimoack le 30-01-2013 à 09:57:44
Reply

Sujets relatifs:

Leave a Replay

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