VBA PowerPoint 2007

Résolu
Salut à toutes et tous !

Je suis en train de faire une macro sous PowerPoint (version 2007)

le but de cette macro est d'attribuer une animation Random sur chaque Bloc texte du pp.

Je n'ai quasi jamais fait de VBA, en utilisant la nouvelle version 2007 j'ai vu que l'enregistrement à été enlevé
contrairement a word et excel 2007.
Bref, les ingénieurs microsoft ont oublié d'enlevé les raccourci ALT+O M E pour enregistré une macro
et après quelque recherche le raccourci ALT+O M R pour terminer l'enregistrement.

Après plusieurs test j'ai pu faire celà:

Sub TestMacro()
'
' BlaBla
'
With ActiveWindow.Selection.SlideRange.SlideShowTransition
.EntryEffect = ppEffectRandom
.Speed = ppTransitionSpeedFast
.AdvanceOnClick = msoTrue
.AdvanceOnTime = msoFalse
.SoundEffect.Type = ppSoundNone
End With
ActiveWindow.View.DisplaySlideMiniature = msoTrue

End Sub

Ici ce que je comprend (corrigé moi si j'ai faux) c'est qu'avec la fenêtre actuel on selectionne tout le slide
et on lui affecte une animation random, le reste suit simplement la config d'une anim (vitesse etc).

J'ai essayé avec TextRange, mais le type d'animation est totalement différent.
Je pense que le plus efficace serait d'inseré une boucle For qui parcours tout le pp et qui attribue une animation si le texte n'en a deja pas ?

Merci d'avance de vos réponses :P
Configuration: Windows XP
Firefox 3.0.10

8 réponses

  1. Modérateur
    Bonjour,

    Bravo pour avoir trouvé l'enregistrement ! Malheureusement, je pense que ça ne marche plus avec PPT 2010.

    Voici ta macro :

    Sub anim()
    Dim x
    For x = 1 To ActivePresentation.Slides.Count
    With ActivePresentation.Slides(x).SlideShowTransition
            .EntryEffect = ppEffectRandom
            .Speed = ppTransitionSpeedFast
            .AdvanceOnClick = msoTrue
            .AdvanceOnTime = msoFalse
            .SoundEffect.Type = ppSoundNone
    End With
    Next x
    End Sub


    m@rina
    1
    1. Modérateur
      Bonjour,

      Essaie ceci :

      Sub anim()
      Dim diapo As Slide, forme As Shape
      
      For Each diapo In ActivePresentation.Slides
      For Each forme In diapo.Shapes
      If forme.HasTextFrame Then
      forme.AnimationSettings.EntryEffect = ppEffectRandom
      End If
      Next forme
      Next diapo
      
      End Sub


      m@rina
      1
      1. Salut !

        Merci beaucoup pour ta réponse !

        L'effet donné est presque celui que je veux, en fait, dans la macro que tu m'a proposé c'est tout le slide qui prend un effet "Random", en fait ce que je voudrais sa serait la même chose mais uniquement pour le bloc texte.

        (Si on lance la macro on verra effectivement que le slide à une animation random, mais si on sélectionne le bloc texte il n'a aucun effet)

        Je vais continué de cherché et je remettrais à jour si je trouve quelque chose d'intéressant !

        Sinon pour les raccourci je n'ai pas PP 2010 donc je ne peux pas trop te dire mais c'est à tester

        Je prend ta macro pour base, merci encore !

        F@tDøg
        0
        1. Modérateur
          Bonjour,

          Tu étais parti sur des transitions de slide. Donc, effectivement, s'il s'agit d'animer des zones de texte, ce n'est pas la même chose.
          Est-ce que ce sont les espaces réservés que tu veux animer ? c'est moins simple car tu peux en avoir 1 ou plus, ou pas du tout sur chaque slide.
          Est-ce une animation d'ouverture ? ou bien une animation d'emphase ?

          m@rina

          ps : pour 2010, ce n'était pas une question, mais une constatation ! ;)
          0
          1. Salut,

            Oui désolé, je me suis mal exprimé. Oui il s'agit bien d'animation de texte, et une animation d'ouverture du type aléatoire c'est bien ce que je cherchais. Donc pour résumé une boucle for qui parcours chaque bloc texte du document PowerPoint et ensuite selectionner et ensuite simplement donné une animation ?
            0
            1. Salut !

              La grande classe, ça marche nickel, ça avait rien à voir avec mon code, j'ai encore du chemin à faire pour le VBA !

              Merci beaucoup, tous les blocs texte ont un anime random !

              Bon week end ;) !

              F@tDøg
              0
              1. Modérateur
                Bonjour,

                Ben oui, tu étais parti sur des transitions, les animations des objets à l'intérieur des diapos, ce n'est pas la même chose ! ;))
                Bon week end à toi aussi

                m@rina
                0
                1. Répondez lui OMFG il need de l'aide quoi
                  -2