Amandine FAURILLOU
Amandine FAURILLOU

Reputation: 612

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?

Upvotes: 4

Views: 6242

Answers (1)

Steve Rindsberg
Steve Rindsberg

Reputation: 14809

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

Upvotes: 7

Related Questions