IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

créer un lien entre une zone texte de power point et une cellule excel [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 29
    Points
    29
    Par défaut créer un lien entre une zone texte de power point et une cellule excel
    Bonjour,


    J'aimerai créer une macro ( sur excel 2000 ) qui me permet de changer la zone texte d'une présentation powerpoint.

    Par exemple je créer un UserForm sur excel , je place des Textbox et je voudrai ensuite après avoir lancer la macro, qu'il me lance le powerpoint et remplisse les champs vide avec ceux des textbox de excel.

    le powerpoint lui serai déjà construit avec les zones de text vide, la macro ne ferai que rempir les zones text du powerpoint.

    pour l'insant je sais comment aller ouvrir un fichier powerpoint :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
     
    Dim ppt As PowerPoint.Application
     
    Set ppt = CreateObject("PowerPoint.Application")
     
    ppt.Visible = True
     
    Dim Pres As PowerPoint.Presentation
    Set Pres = ppt.Presentations.Open(Filename:="L:\mes documents\doc.ppt")
    ppt.ActivePresentation.Slides.Add 1, ppLayoutTitle
     
    End Sub

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    hello !

    Alors, tu pourrais te faire un module de classe (myPres)
    dans lequel tu collerais ce code : (il te reste un peu de boulot, mais c'est indiqué l'endroit ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Option Explicit
    Private m_oCollection         As Collection
    Private m_oApp                As PowerPoint.Application
    Private m_oPres               As PowerPoint.Presentation
    Private Sub Class_Initialize()
        Set m_oCollection = New Collection
        Set m_oApp = New PowerPoint.Application
    End Sub
    Private Sub Class_Terminate()
        Set m_oCollection = Nothing
        m_oPres.Save
        m_oPres.Close
        m_oApp.Quit
        Set m_oApp = Nothing
        Set m_oPres = Nothing
    End Sub
    Function Presentation(a_sPath As String) As PowerPoint.Presentation
        Set m_oPres = m_oApp.Presentations.Open(a_sPath)
        Set Presentation = m_oPres
        'Définition des différentes zones de texte
    'Ici, je te donne un exemple
    ' à toi de définir l'ensemble de tes zones de texte...
    'le système d'encodage : SL pour Slide, TB pour TextBox
        m_oCollection.Add m_oPres.Slides(2).Shapes(3), "SL2TB1"
    End Function
    Function TextBox(a_sKey As String) As PowerPoint.Shape
        Set TextBox = m_oCollection.Item(a_sKey)
    End Function
    Pour utiliser cet outil, tu pourrais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub RemplirLesZT()
        Dim oPres As myPres
    'Créer l'instance
        Set oPres = New myPres
    'Définir le path de la présentation
        oPres.Presentation "c:\test.ppt"
    'Remplir les zones de texte
        oPres.TextBox("SL2TB1").TextFrame.TextRange.Text = "coucou"
    'Faire les autres de la même manière...
    'fin...
        set opres = Nothing
    End Sub
    ++

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    bonjour,


    je te remercie d'avoir répondu si rapidement ^^
    cependant j'ai un petit soucie de compilation au niveau de la déclaration :

    Dim oPres As myPres

    je voudrai savoir si pour utiliser "myPres" il faut rajouter une librairie particulière ?
    ( la commande d'aide ne me donne rien non plus )

    j'ai pour l'instant rajouter que : "microsoft powerpoint 9.0 object library"

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Comme indiqué dans ma réponse...

    1- tu dois te faire un module de classe, et coller le premier code dedans
    Citation Envoyé par Maxence HUBICHE Voir le message
    Alors, tu pourrais te faire un module de classe (myPres)
    dans lequel tu collerais ce code
    2- tu dois, dans un autre module, utiliser cet outil que tu viens de créer. Pour ce faire, tu peux avoir un code tel que le deuxième listing fourni.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 28
    Points : 29
    Points
    29
    Par défaut remerciments
    Merci beaucoup ça fonctionne !!!

    vraiment merci ! je ne voyai vraiment pas comment mis prendre ...



    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Exporter une requête vers Excel et créer un lien entre Access et Excel
    Par Williamm dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/08/2011, 03h58
  2. Réponses: 0
    Dernier message: 29/11/2010, 10h11
  3. [PPT-2003] Nommé une zone de texte dans power point lié à une cellule Excel
    Par justine' dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 27/09/2010, 16h06
  4. Réponses: 2
    Dernier message: 17/11/2009, 15h58
  5. Impression d'une zone dans un tableau et masquer une zone
    Par kazannova dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 18/04/2008, 03h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo