Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 246
Default Need to loop

I have this code, which adds sheets to a workbook based on a named
range. It renames the sheets to the name in the range, but errors on
the second name change because it already exists. How do I get he
macro to rename sheets based on the names in the named list. TIA

Sub AddRangeOfSheets()

Dim c As Range

For Each c In Sheets("sheet1").Range("SList")
If Not IsEmpty(c) Then
CreateSheet (c.Value)
End If
Next c

End Sub

Sub CreateSheet(ShName As String)

Dim CreateSheet As Worksheet

On Error GoTo errh
Set CreateSheet = ActiveWorkbook.Worksheets(ShName)
Exit Sub

errh:
Set CreateSheet = ActiveWorkbook.Worksheets.Add
CreateSheet.Name = ShName

End Sub

Thanks, Greg

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,311
Default Need to loop

There are parts of your code that I don't understand.

I'm assuming "SList" is a named range.
I'm assuming "CreateSheet" is an attempt to add a worksheet...or is it
trying to call another Macro?
My suggestion is below

Sub AddRangeOfSheets()
Dim c As Range

For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Next c

End Sub

HTH,
Paul


"GregR" wrote in message
ups.com...
I have this code, which adds sheets to a workbook based on a named
range. It renames the sheets to the name in the range, but errors on
the second name change because it already exists. How do I get he
macro to rename sheets based on the names in the named list. TIA

Sub AddRangeOfSheets()

Dim c As Range

For Each c In Sheets("sheet1").Range("SList")
If Not IsEmpty(c) Then
CreateSheet (c.Value)
End If
Next c

End Sub

Sub CreateSheet(ShName As String)

Dim CreateSheet As Worksheet

On Error GoTo errh
Set CreateSheet = ActiveWorkbook.Worksheets(ShName)
Exit Sub

errh:
Set CreateSheet = ActiveWorkbook.Worksheets.Add
CreateSheet.Name = ShName

End Sub

Thanks, Greg



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 246
Default Need to loop

On Jun 14, 2:39 pm, "PCLIVE" wrote:
There are parts of your code that I don't understand.

I'm assuming "SList" is a named range.
I'm assuming "CreateSheet" is an attempt to add a worksheet...or is it
trying to call another Macro?
My suggestion is below

Sub AddRangeOfSheets()
Dim c As Range

For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Next c

End Sub

HTH,
Paul

"GregR" wrote in message

ups.com...



I have this code, which adds sheets to a workbook based on a named
range. It renames the sheets to the name in the range, but errors on
the second name change because it already exists. How do I get he
macro to rename sheets based on the names in the named list. TIA


Sub AddRangeOfSheets()


Dim c As Range


For Each c In Sheets("sheet1").Range("SList")
If Not IsEmpty(c) Then
CreateSheet (c.Value)
End If
Next c


End Sub


Sub CreateSheet(ShName As String)


Dim CreateSheet As Worksheet


On Error GoTo errh
Set CreateSheet = ActiveWorkbook.Worksheets(ShName)
Exit Sub


errh:
Set CreateSheet = ActiveWorkbook.Worksheets.Add
CreateSheet.Name = ShName


End Sub


Thanks, Greg- Hide quoted text -


- Show quoted text -


Paul, my code and your code work just fine if there are no blank rows
in the named range, but there are. How do I overcome this hurdle?

Thanks

Greg

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,311
Default Need to loop

Greg,
Try stepping through this code using F8 and find out exactly which line the
code fails on. I know you said that it fails when there are blank cells in
your range, but that doesn't happen on my end. My guess is that the cells
that appear empty are not actally empty and that the code fails on
"ActiveSheet.Name= c.Value". This would fail if the cell value contains an
illegal character for a Worksheet name. See if that's it.


Sub AddRangeOfSheets()
Dim c As Range

For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Sheets("Sheet1").Activate
Next c

End Sub

HTH,
Paul


"GregR" wrote in message
oups.com...
On Jun 14, 2:39 pm, "PCLIVE" wrote:
There are parts of your code that I don't understand.

I'm assuming "SList" is a named range.
I'm assuming "CreateSheet" is an attempt to add a worksheet...or is it
trying to call another Macro?
My suggestion is below

Sub AddRangeOfSheets()
Dim c As Range

For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Next c

End Sub

HTH,
Paul

"GregR" wrote in message

ups.com...



I have this code, which adds sheets to a workbook based on a named
range. It renames the sheets to the name in the range, but errors on
the second name change because it already exists. How do I get he
macro to rename sheets based on the names in the named list. TIA


Sub AddRangeOfSheets()


Dim c As Range


For Each c In Sheets("sheet1").Range("SList")
If Not IsEmpty(c) Then
CreateSheet (c.Value)
End If
Next c


End Sub


Sub CreateSheet(ShName As String)


Dim CreateSheet As Worksheet


On Error GoTo errh
Set CreateSheet = ActiveWorkbook.Worksheets(ShName)
Exit Sub


errh:
Set CreateSheet = ActiveWorkbook.Worksheets.Add
CreateSheet.Name = ShName


End Sub


Thanks, Greg- Hide quoted text -


- Show quoted text -


Paul, my code and your code work just fine if there are no blank rows
in the named range, but there are. How do I overcome this hurdle?

Thanks

Greg



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 246
Default Need to loop

On Jun 15, 6:55 am, "PCLIVE" wrote:
Greg,
Try stepping through this code using F8 and find out exactly which line the
code fails on. I know you said that it fails when there are blank cells in
your range, but that doesn't happen on my end. My guess is that the cells
that appear empty are not actally empty and that the code fails on
"ActiveSheet.Name= c.Value". This would fail if the cell value contains an
illegal character for a Worksheet name. See if that's it.

Sub AddRangeOfSheets()
Dim c As Range

For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Sheets("Sheet1").Activate
Next c

End Sub

HTH,
Paul

"GregR" wrote in message

oups.com...



On Jun 14, 2:39 pm, "PCLIVE" wrote:
There are parts of your code that I don't understand.


I'm assuming "SList" is a named range.
I'm assuming "CreateSheet" is an attempt to add a worksheet...or is it
trying to call another Macro?
My suggestion is below


Sub AddRangeOfSheets()
Dim c As Range


For Each c In Range("SList")
If Not IsEmpty(c) Then
Sheets.Add
ActiveSheet.Name = c.Value
End If
Next c


End Sub


HTH,
Paul


"GregR" wrote in message


roups.com...


I have this code, which adds sheets to a workbook based on a named
range. It renames the sheets to the name in the range, but errors on
the second name change because it already exists. How do I get he
macro to rename sheets based on the names in the named list. TIA


Sub AddRangeOfSheets()


Dim c As Range


For Each c In Sheets("sheet1").Range("SList")
If Not IsEmpty(c) Then
CreateSheet (c.Value)
End If
Next c


End Sub


Sub CreateSheet(ShName As String)


Dim CreateSheet As Worksheet


On Error GoTo errh
Set CreateSheet = ActiveWorkbook.Worksheets(ShName)
Exit Sub


errh:
Set CreateSheet = ActiveWorkbook.Worksheets.Add
CreateSheet.Name = ShName


End Sub


Thanks, Greg- Hide quoted text -


- Show quoted text -


Paul, my code and your code work just fine if there are no blank rows
in the named range, but there are. How do I overcome this hurdle?


Thanks


Greg- Hide quoted text -


- Show quoted text -


Paul, that was it. I had an illegal character in the range for naming
sheets. Thanks

Greg

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Naming Worksheets - Loop within a loop issue klysell Excel Programming 5 March 29th 07 05:48 AM
Naming Worksheets - Loop within a loop issue klysell Excel Programming 0 March 27th 07 11:17 PM
(Complex) Loop within loop to create worksheets klysell Excel Programming 1 March 20th 07 12:03 AM
Advancing outer Loop Based on criteria of inner loop ExcelMonkey Excel Programming 1 August 15th 05 05:23 PM
Problem adding charts using Do-Loop Until loop Chris Bromley[_2_] Excel Programming 2 May 23rd 05 01:31 PM


All times are GMT +1. The time now is 12:30 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"