Generating next worksheet tab name

Paul at GTS

Board Regular
Joined
May 17, 2004
Messages
51
Have a work book with 12 worksheets - 1 per month called :
Jan 19, Feb 19,Mar 19 etc

I am trying to get a formula to read the next sheet in the series. I have it working fine when i manually input the next sheet number but would like say, Jan 19 to be able to calculate the next sheet name as Feb 19

Sheets are named exactly as shown 3 Letters, Space, 2 Numbers.

Any ideas ?

Thanks
 

Joe4

MrExcel MVP, Junior Admin
Joined
Aug 1, 2002
Messages
51,429
Office Version
365
Platform
Windows
Try this:
Code:
Sub CreateNextSheet()

    Dim lastName As String
    Dim nextName As String

'   Get name of last sheet
    lastName = Sheets(Sheets.Count).Name
    
'   Build name of next month
    nextName = Format(DateAdd("m", 1, DateValue(Left(lastName, 4) & "1, 20" & Right(lastName, 2))), "mmm yy")
    
'   Add new sheet
    Sheets.Add After:=Sheets(Sheets.Count)
    
'   Name sheet
    ActiveSheet.Name = nextName
    
End Sub
 

Forum statistics

Threads
1,081,676
Messages
5,360,441
Members
400,586
Latest member
Minty

Some videos you may like

This Week's Hot Topics

  • VBA (Userform)
    Hi All, I just would like to know why my code isn't working. Here is my VBA code: [CODE=vba]Private Sub OKButton_Click() Dim i As Integer...
  • List box that changes fill color
    Hello, I have gone through so many pages trying to figure this out. I have a 2020 calendar that depending on the day needs to have a certain...
  • Remove duplicates and retain one. Cross-linked cases
    Hi all I ran out of google keywords to use and still couldn't find a reference how to achieve the results of a single count. It would be great if...
  • VBA Copy and Paste With Duplicates
    Hello All, I'm in need of some input. My VBA skills are sub-par at best. I've assembled this code from basic research and it works but is...
  • Macro
    is it possible for a macro to run if the active cell value is different to the value above it
  • IF DATE and TIME
    I currently use this to check if date has passed but i also need to set a time on it too. Is it possible? [CODE=vba]=IF(B:B>TODAY(),"Not...
Top