FAQ PowerPoint

FAQ PowerPointConsultez toutes les FAQ
Nombre d'auteurs : 20, nombre de questions : 150, dernière mise à jour : 10 juillet 2021
Sommaire→Macros, VBA et fonctions avancées→FormesIl suffit de programmer la macro suivante et l'affecter à la forme automatique (clic droit dessus et Paramètre des actions).
Sub changecolor ()
Activepresentation.slides(numero de ta diapo).shapes(numero de ton image).Fill.Forecolor.RGB = RGB(255, 0, 0)
End SubLorsque vous insérez manuellement des objets dans un diaporama, PowerPoint va leur donner un nom (Rectangle 1, Ellipse 6, etc...), donc des noms peu parlants.
Le seul moyen qui existait pour nommer les éléments avec des noms cohérents, étaient d'ajouter les éléments par programmation.
Hors il est utile, lorsque vous voulez faire un peu de VBA, de donner des noms cohérents à des formes placées manuellement sur vos diapositives.
PowerPoint 2007 permet maintenant de nommer les éléments manuellement : Comment nommer un objet dans PowerPoint 2007 ?
Le code proposé va :
- Se positionner sur chaque slide (diapositive de votre présentation).
- Parcourir tous les éléments de votre diapositive en les sélectionnant (ce qui vous permettra de les visualiser).
- Une boite de dialogue en haut à gauche vous indiquera le nom de la diapositive, le nom de l'élément.
- Vous n'avez plus qu'à saisir le nouveau nom à la place de l'ancien, puis à valider et ainsi de suite.
Ce code est à utiliser lorsque vous créer votre présentation, et non en mode diaporama.
- Copiez le code suivant dans un module de l'éditeur VBE (Alt + F11).
- Positionnez le curseur de votre souris à l'intérieur de celui-ci.
- Appuyez sur la touche F5 pour exécuter la routine.
- La fenêtre de PPT passe alors au premier plan, une boite de dialogue en haut à gauche s'affiche, vous n'avez plus qu'à renommer au fur et à mesure.
Public Sub RenommerShapes()
'=======================================================================================
' Procedure : RenommerShapes
' Auteur : Philippe JOCHMANS - http://starec.developpez.com
' Date : 19/04/2008
' Commentaires : Cette procédure va permettre de renommer les shapes de slides
'=======================================================================================
' ===== déclaration des variables =====
Dim objSld As Slide ' va permettre de parcourir les diapositives du diaporama
Dim objShp As Shape ' va permettre de parcourir les éléments d'une diapositive
Dim strNom As String ' pour récupérer le nouveau nom
Dim strMessage As String ' message qui sera affiché dans la boite de demande du nom
' ===== boucle ======
' on boucle sur l'ensemble des diapositives
For Each objSld In ActivePresentation.Slides
objSld.Select
' on boucle sur l'ensemble des shapes
For Each objShp In objSld.Shapes
' création du message qui indiquera slide + shape
objShp.Select
strMessage = "Elément sélectionné :" & vbCrLf & _
"- Slide : " & objSld.Name & vbCrLf & _
"- Shape : " & objShp.Name
strNom = InputBox(strMessage, "Modification des noms", objShp.Name, 0, 0)
' contrôle du nom
' si on supprime le nom, on reprend l'ancien
If strNom = "" Or IsNull(strNom) Then
strNom = objShp.Name
End If
objShp.Name = strNom
Next objShp
Next objSld
End SubLorsque vous réalisez des dégradés dans une forme, il faut que l'indication du type de dégradé apparaisse avant l'affectation des couleurs.
Ainsi le code suivant fonctionne :
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 240, 240, 100, 100)
With shp
.Fill.TwoColorGradient msoGradientHorizontal, 1
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Fill.BackColor.RGB = RGB(0, 250, 0)
.Fill.Visible = msoTrue
DoEvents
End With
End SubSi vous mettez la propriété .Fill.TwoColorGradient msoGradientHorizontal, 1 après l'affectation des couleurs (ForeColor et BackColor), le dégradé n'apparaîtra pas.
Lorsque l'on change la dimension d'une forme par programmation, l'autre n'est pas modifié.
Si on veut garder un ratio entre la hauteur et la largeur, il faut utiliser la méthode
LockAspectRatio de l'objet Shape.
Le code suivant va multiplier la hauteur de toutes les formes de la première diapositive par 1.5, et gardant le même ration sur la largeur.
Public Sub Redimensionner()
'---------------------------------------------------------------------------------------
' Procedure : Redimensionner
' Auteur : Philippe JOCHMANS - http://starec.developpez.com
' Date : 15/05/2009
' Commentaires : Comment redimensionner une image en gardant la proportion
'---------------------------------------------------------------------------------------
Dim sld As Slide
Dim shp As Shape
Set sld = ActivePresentation.Slides(1)
For Each shp In sld.Shapes
With shp
.LockAspectRatio = msoTrue
.Height = .Height * 1.5
End With
Next shp
End Sub


