[vba powerpoint] pagination avec total de diapo

Soyez le premier à donner votre avis sur cette source.

Vue 7 230 fois - Téléchargée 406 fois

Description

Ajouter une pagination avec le nombre total de diapo. Pour chaque diapo, la macro insère un textbox contenant le numéro de la diapo et le nombre total de diapo. Pour exécuter la macro, allez dans le menu de macro et exécutez la macro AjouterPagination. Si vous ajoutez ou insérez des diapos après avoir paginé, alors relancez la macro. L'intérêt de cette macro est d'obtenir le nombre total de diapo dans la pagination. Pour effacer la pagination, exécutez la macro EffacerPagination.

Source / Exemple :


'Déclaration

' nom du textbox pour la pagination
' indispensable pour effacer la pagination par macro
Private Const PaginationName As String = "LaPagination"
'
'---------
' Sous la forme d'un textbox sur chaque diapo, insère une pagination avec le nombre total de diapo
'---------

Public Sub AjouterPagination()
    Dim Diapo As Slide
    Dim iTotal As Integer, i As Long
    Dim iWidth As Integer, iHeight As Integer, iTop As Integer, iLeft As Integer
    ' efface la précédente pagination
    Call EffacerPagination
    ' détermine le nombre total de slide
    iTotal = ActivePresentation.Slides.Count
    ' dimensions et positions du textbox
    iWidth = 40
    iHeight = 30
    iTop = 492
    iLeft = 640
    ' passe en revue toutes les slides, sauf la 1ère
    For i = 2 To iTotal
        ' attribue une variable pour la slide en cours
        Set Diapo = ActivePresentation.Slides(i)
        ' crée un textbox en lui donnant un nom pour mieux l'effacer par macro
        Diapo.Shapes.AddTextbox(msoTextOrientationHorizontal, iLeft, iTop, iWidth, iHeight).Name = PaginationName
        ' configure et remplis le textbox
        With Diapo.Shapes(PaginationName)
            ' remplis avec la pagination
            .TextFrame.TextRange.Text = i & " / " & iTotal
            ' mise en forme du textbox
            .Fill.Transparency = 0#
            .TextFrame.WordWrap = msoFalse
            .TextFrame.AutoSize = ppAutoSizeShapeToFitText
            .TextFrame.TextRange.Font.Name = "Arial"
            .TextFrame.TextRange.Font.Size = 10
            .TextFrame.TextRange.Font.Bold = msoFalse
            .TextFrame.TextRange.Font.Italic = msoFalse
            .TextFrame.TextRange.Font.Underline = msoFalse
            .TextFrame.TextRange.Font.Shadow = msoFalse
            .TextFrame.TextRange.Font.Emboss = msoFalse
            .TextFrame.TextRange.Font.BaselineOffset = 0
            .TextFrame.TextRange.Font.AutoRotateNumbers = msoFalse
            .TextFrame.TextRange.Font.Color.SchemeColor = ppForeground
        End With
    Next i
End Sub

Public Sub EffacerPagination()
    Dim Diapo As Slide
    Dim y As Long
    ' passe en revue toutes les slides
    For y = 1 To ActivePresentation.Slides.Count
        ' attribue une variable pour la slide en cours
        Set Diapo = ActivePresentation.Slides(y)
        On Error Resume Next
        Diapo.Shapes(PaginationName).Delete
        On Error GoTo 0
    Next y
End Sub

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

Bon et bien oubliez j'ai trouvé la réponse moi-même en réfléchissant un poil^^
Remplacer :
.TextFrame.TextRange.Font.Color.SchemeColor = ppForeground
Par :
.TextFrame.TextRange.Font.Color.RGB = RGB(0, 0, 0)
Pour ceux que cela peut aider
Messages postés
3
Date d'inscription
mardi 27 septembre 2011
Statut
Membre
Dernière intervention
27 septembre 2011

Merci beaucoup excellent code pour un novice come moi... Par contre je souhaiterai pouvoir changer la couleur du texte en automatique car la c'est en noir je voudrais pourvoir y mettre une couleur en RVB pouvez-vous me dire quelle partie modifier SVP

Merci encore Séb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.