Amandine FAURILLOU February 2016

VBA : Number the slide if they are visible

I have a powerpoint presentation with hidden slides.

I want to number only the visible slides.

I got this code :

Sub Numerotation()
Dim x As Integer
Dim diapo As Slide
For Each diapo In ActivePresentation.Slides
  If diapo.SlideShowTransition.Hidden = False Then
    x = x + 1
    diapo.HeadersFooters.Footer.Text = x
  Else
    diapo.HeadersFooters.Footer.Text = ""
  End If
Next
End Sub

I got this error :

Execution Error : '-2147188160 (80048240)':
HeaderFooter (unknown member) : Invalid request

I don't understand why vba doesn't recognise the HeaderFooter member (here is what MSDN says)

Can you help me figure out what seems to be wrong?

Answers


Steve Rindsberg February 2016

The MSDN example, as is so often the case, is half-accurate at best. If the Footer object isn't visible, attempting to assign text to it results in the error you're seeing. Here's a slight mod to your code that works:

Sub Numerotation()
Dim x As Integer
Dim diapo As Slide
For Each diapo In ActivePresentation.Slides
  If diapo.SlideShowTransition.Hidden = False Then
    x = x + 1
    diapo.HeadersFooters.Footer.Visible = True
    diapo.HeadersFooters.Footer.Text = CStr(x)
  Else
    diapo.HeadersFooters.Footer.Visible = False
  End If
Next
End Sub

Post Status

Asked in February 2016
Viewed 2,791 times
Voted 8
Answered 1 times

Search




Leave an answer