none
Power Point automation RRS feed

  • Question

  • Bonjour,

    Je cherche à modifier par programme en VB10 certaines diapos d'un PowerPoint (2010)

    Comment accéder aux titres et autres éléments d'une diapo dans une présentation ?

    Voici le début de mon code:

     

    Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    Public Class Form1
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim ppt1 As New PowerPoint.Application
     Dim chemin As String = "C:\Users\fred\Documents\presentation1.pptx"
     Dim ppt2 As PowerPoint.Presentation
     ppt2 = ppt1.Presentations.Open2007(chemin)
     ppt1.Visible = True
     End Sub
    End Class
    

     


    fred
    dimanche 1 mai 2011 15:14

Réponses

  • Bonjour fred,

    tu peux essayer un code comme suit :

     

     

    Dim ppt = New Microsoft.Office.Interop.PowerPoint.Application()
    ppt.Presentations.Open("C:\monpowerpoint.ppt")
    For Each sld As Slide In ppt.ActivePresentation.Slides
    
      For Each sh As Shape In sld.Shapes
    
        Console.WriteLine(sh.Id)
    
      Next
    
    Next
    
    

     

    Cordialement

    • Marqué comme réponse fred75 mardi 10 mai 2011 09:22
    lundi 9 mai 2011 12:33
    Modérateur

Toutes les réponses

  • Bonjour,

     

    J'ai pas Office 2010 sur cette machine mais ça doit ressemblé beaucoup
    donc vous avez une une ou plusieurs diapo et vous souhaitez en modifier le titre, qu'en tendez vous par titre ?

    Les titres que vous parlez son dans une zone de texte ?

     

    A bientot


    Cordialement,
    Xavier
    Alias Troxsa My M@iL
    mardi 3 mai 2011 13:20
    Auteur de réponse
  • Bonjour Xavier,

    J'ai plusieurs diapo et je souhaite modifier des labels à l'intérieur de certaines.

    Par titre j'entends un textbox qui contient du texte

    Je n'ai pas trouvé d'info sur comment sont vue les différentes zones de texte par VB ?


    fred
    mardi 3 mai 2011 19:25
  • Bonjour Fred75

     

    Dans Word et dans excel sur les zone de texte en version 2003 on pouvais mettre une propriété spécifique, mais c'est une zone de texte particulière qui s'appelle champs texte et pour faire la modification il faillais lui donné un nom de signet

    et dans le code appelant le doc en question je fessais

    document.FormFields("nomDuSignet").Result = tbUserLogin.Text
    

    j'ai essayé avec un PPT et vu que je suis pas une tete en PowerPoint j'ai pas trouvé ou ça ce trouve

    je pense qu'il doit y avoir un moyen qui pourrais aussi ressembler a ça :

    ppt1.NomDuSignet.value = "test" 
    ou alors
    ppt1.NomDuSignet.Resultat= "titi"
    

    Si vous trouvez la solution, n'oublier pas de la partager :)

     

    A bientot

     


    Cordialement,
    Xavier
    Alias Troxsa My M@iL
    • Proposé comme réponse Ciprian Duduiala vendredi 6 mai 2011 06:10
    • Marqué comme réponse Ciprian Duduiala dimanche 8 mai 2011 13:06
    • Non marqué comme réponse fred75 dimanche 8 mai 2011 13:09
    mardi 3 mai 2011 20:44
    Auteur de réponse
  • Merci Xavier,

    C'est exactement ce que je recherche

    mais cela me donne une idée

    je vais essayer de lister tous les objects d'une diapo

     


    fred
    mercredi 4 mai 2011 12:28
  • Fred75

    Il me semble avoir essayer de lister les objets et j'ai pas réussi ...

    Si j'ai pu vous mettre sur une piste c'est deja une bonne chose si vous aboutissez :)

     

    A bientot


    Cordialement,
    Xavier
    Alias Troxsa My M@iL
    mercredi 4 mai 2011 13:20
    Auteur de réponse
  • Bonjour Xavier,

    Je pensais à quelque chose comme for each control as Controls mais cela doit s'appliquer à une win form

    par contre j'ai vu que les diapos sont un tableau de diapo donc je peux adresser une dispo en direct

    diapo(5)

    je vais essayer for each object in diapo(5) par exemple

     

     


    fred
    jeudi 5 mai 2011 12:35
  • Bonjour Cyprian,

    Je n'ai toujours pas trouvé comment se nomme les objets dans PowerPoint 2007 ?

     


    fred
    dimanche 8 mai 2011 13:11
  • Bonjour, Fred,

    Ma faute. Je n'ai pas bien lu et j’ai cru que la solution était déjà trouvée.

     

    Cordialement,

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    lundi 9 mai 2011 10:45
  • Bonjour fred,

    tu peux essayer un code comme suit :

     

     

    Dim ppt = New Microsoft.Office.Interop.PowerPoint.Application()
    ppt.Presentations.Open("C:\monpowerpoint.ppt")
    For Each sld As Slide In ppt.ActivePresentation.Slides
    
      For Each sh As Shape In sld.Shapes
    
        Console.WriteLine(sh.Id)
    
      Next
    
    Next
    
    

     

    Cordialement

    • Marqué comme réponse fred75 mardi 10 mai 2011 09:22
    lundi 9 mai 2011 12:33
    Modérateur
  • ok merci Nikho

     


    fred
    mardi 10 mai 2011 09:22