Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VBA : Number the slide if they are visible

Tags:

powerpoint

vba

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?

like image 848
Amandine FAURILLOU Avatar asked Sep 19 '25 23:09

Amandine FAURILLOU


1 Answers

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
like image 192
Steve Rindsberg Avatar answered Sep 23 '25 12:09

Steve Rindsberg