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

VBA PowerPoint Discussion :

Sélectionner plusieurs Shape pour appliquer une animation


Sujet :

VBA PowerPoint

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Sélectionner plusieurs Shape pour appliquer une animation
    Bonjour,

    Je souhaite appliquer une animation simple (apparition) et un ordre d'affichage identique pour plusieurs Shape.

    J'utilise ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set PptDoc = ActivePresentation
     
        Dim oeff As Effect
        Dim osld As Shape
        'PptDoc.Slides(3).Select
     
        With PptDoc.Slides(3)
            Set oeff = .TimeLine.MainSequence.AddEffect(Shape:=.Shapes("Objet A" ), effectID:=msoAnimEffectAppear, trigger:=msoAnimTriggerOnPageClick, Index:=1)
            Set oeff = .TimeLine.MainSequence.AddEffect(Shape:=.Shapes("Objet B" ), effectID:=msoAnimEffectAppear, trigger:=msoAnimTriggerOnPageClick, Index:=1)
        End With
    Avec ce code, l'objet B a un ordre d'affichage incrémenté d'un par rapport à l'objet B, ce qui ne répond pas au besoin.

    Existerait-il un code qui permette que l'objet B s'affiche en même temps que l'objet A ?

    Merci,
    Cyril

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cyril8888855555 Voir le message
    l
    Bonjour,

    Juste une remarque sans VBA : Le groupement des deux shapes ne serait pas suffisant ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Oui, c'est possible mais il y a 50 fichiers PowerPoint sur lesquels mettre en place les animations.
    C'est pourquoi, je souhaitai automatiser cela. Sachant que ces fichier PPT sont générés par VBA et ont la même structure et organisation.

    Merci,

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cyril8888855555 Voir le message
    Si les shapes sont du type 14 (comme celles natives dans un slide), visiblement elles ne peuvent pas être groupées. En revanche, en créant des formes de type 1 AutoShape (celles en ajoutant depuis le menu), celles-ci peuvent être groupées. Selon le contenu, ces formes peuvent être générées en VBA pour remplacer les formes de type 14.
    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
     
    Sub GrouperDeuxShapes()
     
    Dim PptDoc As Presentation
    Dim oeff As Effect
    Dim osld1 As Shape, osld2 As Shape, osld_AB As Shape
     
        Set PptDoc = ActivePresentation
     
        With PptDoc.Slides(3)
             Set osld1 = .Shapes("Rectangle 1")
             Set osld2 = .Shapes("Rectangle 2")
             Set osld_AB = .Shapes.Range(Array(osld1.Name, osld2.Name)).Group
             Set oeff = .TimeLine.MainSequence.AddEffect(Shape:=osld_AB, effectID:=msoAnimEffectAppear, trigger:=msoAnimTriggerOnPageClick, Index:=1)
        End With
     
        Set osld_AB = Nothing
        Set osld1 = Nothing
        Set osld2 = Nothing
        Set PptDoc = Nothing
     
    End Sub

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci Eric, ton code fonctionne. Je vais tester cela sur l'ensemble de mon fichier PowerPoint.

Discussions similaires

  1. Boutons pour appliquer une même macro plusieurs fois
    Par naiiiiiiiii dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 19/06/2018, 10h44
  2. Appliquer plusieurs prédicats pour définir une règle
    Par citron_666 dans le forum Prolog
    Réponses: 7
    Dernier message: 24/08/2012, 11h00
  3. Sélectionner plusieurs valeurs pour une clé
    Par hakkio dans le forum Général Python
    Réponses: 3
    Dernier message: 21/05/2011, 13h26
  4. Réponses: 1
    Dernier message: 27/11/2008, 12h41
  5. Réponses: 6
    Dernier message: 30/07/2007, 13h10

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