![]() |
#1
|
|||
|
|||
![]()
Hello,
I'm facing a problem generating page number of slides and can't find similar topics. The manual method remains possible but too tedious, especially for future updates... I'm working on a file in A3 landscape mode in order to make a presentation representing a "book" format with two A4 portrait pages facing each other (I hope that's clear). So only my front and back pages are in A4 portrait format. For information, these two A4 pages are located in another file which does not interest us here. I therefore want to make a double numbering of the A3 landscape pages so that they look like 2 A4 pages facing each other like in an open book. - An even numbering on the left of the slide - for example 2 on the 1st slide; - An odd numbering to the right of this same slide - for example 3 on the 1st slide; I know that Powerpoint is not the best software to make this type of document... This is why I am looking for a VBA allowing me to perform this numbering automatically. Ideas ? Thank you ! |
#2
|
|||
|
|||
![]()
Maybe something like
Code:
Sub number_Me() Dim osld As Slide Dim SW As Long Dim SH As Long Dim x As Long SW = ActivePresentation.PageSetup.SlideWidth SH = ActivePresentation.PageSetup.SlideHeight Call Killer ' remove old numbers For Each osld In ActivePresentation.Slides With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, SH - 50, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x) .Name = "Mynumber" End With With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, SW - 30, SH - 50, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x + 1) .Name = "Mynumber" End With x = x + 1 Next osld End Sub Sub Killer() Dim osld As Slide Dim l As Long For Each osld In ActivePresentation.Slides For l = osld.Shapes.Count To 1 Step -1 If osld.Shapes(l).Name = "Mynumber" Then osld.Shapes(l).Delete Next l Next osld End Sub |
#3
|
|||
|
|||
![]()
Hello John,
Wow! thank you very much! That was very fast! This exactly what I want. I've only change the numbering (start at 2 because the first page is pair). I've tried to reduce the size of the text but it is not working when I change "osld.Shapes.AddTextbox" value... Any idea ? while awaiting developments, THANK YOU VERY MUCH! Here the code I modify. Code:
Sub number_Me() Dim osld As Slide Dim SW As Long Dim SH As Long Dim x As Long x = 1 'first page is number 2 SW = ActivePresentation.PageSetup.SlideWidth SH = ActivePresentation.PageSetup.SlideHeight Call Killer ' remove old numbers For Each osld In ActivePresentation.Slides With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, 20, SH - 45, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x) .Name = "Mynumber" End With With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, SW - 40, SH - 45, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x + 1) .Name = "Mynumber" End With x = x + 1 Next osld End Sub Sub Killer() Dim osld As Slide Dim l As Long For Each osld In ActivePresentation.Slides For l = osld.Shapes.Count To 1 Step -1 If osld.Shapes(l).Name = "Mynumber" Then osld.Shapes(l).Delete Next l Next osld End Sub |
#4
|
|||
|
|||
![]()
Try
Code:
Sub number_Me() Dim osld As Slide 'change size here Const fontSZ As Long = 12 Dim SW As Long Dim SH As Long Dim x As Long SW = ActivePresentation.PageSetup.SlideWidth SH = ActivePresentation.PageSetup.SlideHeight Call Killer ' remove old numbers For Each osld In ActivePresentation.Slides With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, SH - 50, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x + 1) .TextFrame2.TextRange.Font.Size = fontSZ .Name = "Mynumber" End With With osld.Shapes.AddTextbox(msoTextOrientationHorizontal, SW - 30, SH - 50, 20, 20) .TextFrame2.TextRange = CStr(osld.SlideIndex + x + 2) .TextFrame2.TextRange.Font.Size = fontSZ .Name = "Mynumber" End With x = x + 1 Next osld End Sub Sub Killer() Dim osld As Slide Dim l As Long For Each osld In ActivePresentation.Slides For l = osld.Shapes.Count To 1 Step -1 If osld.Shapes(l).Name = "Mynumber" Then osld.Shapes(l).Delete Next l Next osld End Sub |
#5
|
|||
|
|||
![]()
WOW!
AMAZING, Thanks very much. Regards, |
#6
|
|||
|
|||
![]()
One last thing, is it possible to modify the color of the text (put it in white) only for the slides of the master slide named "Titles"?
Regards, |
![]() |
Tags |
numbering, slide number, vba |
Thread Tools | |
Display Modes | |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
SDwriter | Word | 12 | 10-25-2017 06:56 AM |
![]() |
Jashley1 | Word | 2 | 11-25-2014 10:36 PM |
![]() |
onemorecupofcoffee | Word | 18 | 09-04-2013 04:31 PM |
![]() |
goran | Word | 2 | 11-02-2012 03:42 PM |
Page Header and Page Numbering for Technical Book | SQLUSA | Word | 4 | 06-25-2012 09:53 AM |