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 :

Macro pour personnaliser le masterslide d'une présentation powerpoint


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut Macro pour personnaliser le masterslide d'une présentation powerpoint
    Bonjour

    j'ai créé une macro qui prend les données d'un fichier excel et les mets dans un powerpoint. Jusque là rien de bien compliqué je vous le concède.
    La deuxième étape maintenant serait de permettre aux personnes qui l'utilisent de personnaliser leur master slide powerpoint au lancement de la macro. Pour l'instant, la place des champs (1,2,3, 4 et 5) est figée et aucun
    masque n'est ajoutable.

    J'ai mis le morceau de code de la macro qui concerne powerpoint.

    L'idée serait de:
    1- lancer la macro
    2- le slide powerpoint apparaît vierge en mode slide master avec les 5 champs définis et à placer dans le slide.
    3- l'utilisateur personnalise son master slide (déplace les champs et ajoute son masque).
    4- valide le master slide -> la macro reprend et crée tous les slides sur le format choisit.

    Est ce que vous pensez qu'avec vba, il est possible d'aller aussi loin?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub test_creation_page_slide()
    '
    ' Macro recorded 30/04/2009 by BM1500
    '
     
    Dim PptApp As PowerPoint.Application
    Dim PptDoc As PowerPoint.Presentation
    Dim Diapo As PowerPoint.Slide
    Dim Sh As PowerPoint.Shape
    Dim Cs1 As ColorScheme
    Dim NbShpe As Integer
    Dim i As Integer
    Dim k As Integer
    Dim j As Integer
     
     
        Set Diapo = .Slides.Add(Index:=1, Layout:=ppLayoutBlank)
        Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=100, Top:=100, Width:=150, Height:=30)
        'insert the value in a text field
        Sh.TextFrame.TextRange.Text = "champ 1:" & " " & Worksheets(k).Cells(i, 2)
        Sh.TextFrame.TextRange.Font.Size = 12
        Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=300, Top:=100, Width:=150, Height:=60)
        'insert the value in a text field
        Sh.TextFrame.TextRange.Text = "Champ 2" & " " & Worksheets(k).Cells(i, 4)
        Sh.TextFrame.TextRange.Font.Size = 12
        Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=100, Top:=120, Width:=150, Height:=60)
        'insert the value in a text field
        Sh.TextFrame.TextRange.Text = "Champ 3" & " " & Worksheets(k).Cells(i, 6)
       Sh.TextFrame.TextRange.Font.Size = 12
        Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=100, Top:=450, Width:=500, Height:=30)
        'insert teh value in a text field
            Sh.TextFrame.TextRange.Text = "Champ 4:" & " " & Worksheets(k).Cells(i, 7)
        Sh.TextFrame.TextRange.Font.Size = 12
          Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _
            Left:=100, Top:=180, Width:=200, Height:=260)
        'insert the value in a text field
        Sh.TextFrame.TextRange.Text = "Champ 5"&" "&Worksheets(k).Cells(i, 8)

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenue sur le forum Office de DVP.

    Je n'ai pas regardé dans le détail, mais il y a une chose qu'il faut prendre en considération.

    C'est que les gens qui vont utiliser cela auront toujours la possibilité de supprimer des zones ou d'en ajouter. En effet, tu les fais rentrer en mode conception, ils sont donc libres de faire ce qu'ils veulent, et même sans cela une fausse manipulation est vite arrivée.

    Tout cela fait que ton système ne sera pas fiable à 100 %

    Philippe

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    je suis d'accord avec toi. En donnant la possibilité de concevoir à un moment donné, je perds le contrôle sur l'éxécution de ma macro dans les meilleures conditions. Cependant, en leur expliquant en amont l'impact de leur manipulations, ce risque sera assez faible. Merci pour ton avertissement.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Malgré les avertissements, il y aura toujours un risque, enfin c'est ton choix (si cela fonctionne tiens moi au courant si tu as des boulets)

    En revenant sur ton problème.

    Je passerais par 2 macros, une qui fait la première choses décrite ci-dessus, et ensuite, je ferais cliquer les utilisateurs sur un bouton ou autre pour lancer l'autre macro, et non pas une interruption dans une macro.

    A priori, je ne vois pas de problèmes particulier à ton projet, a si un truc, je te conseilles de nommes tes contrôles à la création avec la propriété Name, en effet si tes utilisateurs qui customizent l'ensemble veulent rajouter des contrôles du même type tu seras moins embêté.

    Philippe

Discussions similaires

  1. [Toutes versions] Macro pour copier le contenu d'une cellule d'un fichier excel et coller dans une form
    Par wizishop dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 16/10/2015, 12h05
  2. Réponses: 1
    Dernier message: 10/02/2010, 14h08
  3. [XL-2007] Macro pour récupérer la valeur d'une formule avec Aujourd'hui
    Par patougaffou dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 28/09/2009, 18h28
  4. Macro pour visualiser graphiquement pas à pas une lliste de valeurs
    Par Aidez-moi_svp dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/08/2007, 05h23
  5. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21

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