PDA

View Full Version : How to inserte progress DOTS in powerpoint 2012



Droo
06-12-2012, 11:15 AM
Hello ! :hi:

I'm wondering how to insert progress dots in my Power Point presentation, (NOT PROGRESS BAR, please :banghead: ) which allow to view the progress of each slide in the whole presentation. I want to put them in the upper left corner of each slide.

For example, I put 4 dots in the upper left corner of each slide, if I'm on the first or second slide, it will show one dark dots, and three blank dots. If I'm on the 5th or 6th slide, it will show 3 dark dots and one blank dot.

Please, can someone tell me how to do this?

I have Microsoft Office Professional Plus 2010.

Thank you very much ! :hi:

Paul_Hossler
06-13-2012, 06:58 PM
What do you do if you're on the 19th or 20th slide?

Paul

John Wilson
06-13-2012, 10:28 PM
Like Paul I'm finding it hard to imagine what you need.

Are the dot physically added to each slide (the equivalent of adding manually)?

Wouldn't it be more sensible to have say ten dots each one indicating 10% of the slides?

Paul_Hossler
06-21-2012, 01:04 PM
One possilble initial approach

Run the macro as design time and it adds 4 markers and fills them in (1,2,3,4,1,2,3,4,1,2,3,4, ....)


Option Explicit
Sub AddMarkers()
Dim oPres As Presentation
Dim oSlide As Slide
Dim oShape As Shape
Dim aBox(0 To 3) As Shape
Dim i As Long
Set oPres = ActivePresentation
For Each oSlide In oPres.Slides
On Error Resume Next
oSlide.Shapes("Box0").Delete
oSlide.Shapes("Box1").Delete
oSlide.Shapes("Box2").Delete
oSlide.Shapes("Box3").Delete
On Error GoTo 0
Next

For Each oSlide In oPres.Slides
For i = 0 To 3
Set aBox(i) = oSlide.Shapes.AddShape(msoShapeRectangle, 12 * i, 0, 12, 12)
aBox(i).Name = "Box" & i
aBox(i).Fill.ForeColor.RGB = RGB(0, 0, 0)
aBox(i).Line.Weight = 1
aBox(i).Line.ForeColor.RGB = RGB(255, 255, 255)
Next i
Next

For Each oSlide In oPres.Slides
i = (oSlide.SlideNumber Mod 4)
oSlide.Shapes("Box" & i).Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
End Sub


Pretty crude, but it might help. The attachment has a sample result

(Remove the .zip part)

Paul

Droo
06-21-2012, 01:17 PM
Hello Paul, thank you for your response !
I downloaded the attachment. But how should I proceed to open XML files found in this attachment ?
Are XML files sort of presentation ?

Paul_Hossler
06-21-2012, 05:27 PM
just rename the file Dots.pptm

You can't load a .pptm file here so you have to fool it a little

It really is a Macro Enabled Powerpoint

It is not dynamic. You'd have to run the macro or your improved version to add the dots each time you add or delete slide

Paul

Paul_Hossler
06-22-2012, 04:54 AM
Also, this as is just fills in a single dot, leaving the other 3 empty.

Personally, I think John's approach is better: insert 10 dots, and fill in based on the percentage of slides displayed. So on the 15th slide of 45 slides total, you would have the first 3 of 10 dots filled in (=30%)

Paul

Paul_Hossler
06-22-2012, 06:46 AM
Percentage markers



Sub AddMarkers_1()
Dim oPres As Presentation
Dim oSlide As Slide
Dim oShape As Shape
Dim aBox(0 To 9) As Shape
Dim i As Long, iDots As Long
Dim dblPercent As Double
Set oPres = ActivePresentation
For Each oSlide In oPres.Slides
For i = LBound(aBox) To UBound(aBox)
On Error Resume Next
oSlide.Shapes("Box" & i).Delete
On Error GoTo 0

Set aBox(i) = oSlide.Shapes.AddShape(msoShapeRectangle, 12 * i, 0, 12, 12)
aBox(i).Name = "Box" & i
aBox(i).Fill.ForeColor.RGB = RGB(0, 0, 0)
aBox(i).Line.Weight = 1
aBox(i).Line.ForeColor.RGB = RGB(255, 255, 255)
Next i
Next

For Each oSlide In oPres.Slides
dblPercent = 100# * oSlide.SlideNumber / oPres.Slides.Count

If dblPercent < 5# Then
iDots = -1
ElseIf dblPercent < 15# Then
iDots = 0
ElseIf dblPercent < 25# Then
iDots = 1
ElseIf dblPercent < 35# Then
iDots = 2
ElseIf dblPercent < 45# Then
iDots = 3
ElseIf dblPercent < 55# Then
iDots = 4
ElseIf dblPercent < 65# Then
iDots = 5
ElseIf dblPercent < 75# Then
iDots = 6
ElseIf dblPercent < 85# Then
iDots = 7
ElseIf dblPercent < 95# Then
iDots = 8
Else
iDots = 9
End If

For i = 0 To iDots
oSlide.Shapes("Box" & i).Fill.ForeColor.RGB = RGB(255, 0, 0)
Next i
Next

MsgBox "Done adding progress dots"
End Sub