Create & name worksheets from a list and copy data
Solved/Closed
                    
        
                    RachJol
    
        
                    Posts
            
                
            3
                
                            Registration date
            Tuesday October  4, 2016
                            Status
            Member
                            Last seen
            October  4, 2016
            
                -
                            Oct  4, 2016 at 11:10 AM
                        
TrowaD Posts 2921 Registration date Sunday September 12, 2010 Status Contributor Last seen December 27, 2022 - Oct 6, 2016 at 11:07 AM
        TrowaD Posts 2921 Registration date Sunday September 12, 2010 Status Contributor Last seen December 27, 2022 - Oct 6, 2016 at 11:07 AM
        Related:         
- Creating multiple worksheets from a template and a list of names
 - My contacts list names - Guide
 - Counter strike 1.6 cheats list - Guide
 - Amd crossfire gpu list - Guide
 - It looks like you're trying to create an account for a business, organization or character. please create a facebook page instead. - Facebook Forum
 - Count names in excel - Guide
 
2 responses
                
        
                    TrowaD
    
        
                    Posts
            
                
            2921
                
                            Registration date
            Sunday September 12, 2010
                            Status
            Contributor
                            Last seen
            December 27, 2022
            
            
                    555
    
    
                    
Oct 4, 2016 at 11:21 AM
    Oct 4, 2016 at 11:21 AM
                        
                    Hi RachJol,
You mean like this?:
Best regards,
Trowa
Monday, Tuesday and Thursday are usually the days I'll respond. Bear this in mind when awaiting a reply.
            You mean like this?:
Sub CreateSheetsFromAList()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("Data Entry").Range("A2")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
    Sheets("Template").Copy After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
    Range("F3").Value = MyCell.Value
    Range("F4").Value = MyCell.Offset(0, 1).Value
Next MyCell
End Sub
Best regards,
Trowa
Monday, Tuesday and Thursday are usually the days I'll respond. Bear this in mind when awaiting a reply.
                
        
                    TrowaD
    
        
                    Posts
            
                
            2921
                
                            Registration date
            Sunday September 12, 2010
                            Status
            Contributor
                            Last seen
            December 27, 2022
            
            
                    555
    
    
                    
Oct 6, 2016 at 11:07 AM
    Oct 6, 2016 at 11:07 AM
                        
                    Hi Rachael,
To check if a sheet already exist you can use this custom code:
Place this code after the End Sub line and then use this line in your code:
Best regards,
Trowa
 
                
                
            To check if a sheet already exist you can use this custom code:
Function SheetExists(SheetName As String) As Boolean SheetExists = False On Error GoTo NoSuchSheet If Len(Sheets(SheetName).Name) > 0 Then SheetExists = True Exit Function End If NoSuchSheet: End Function
Place this code after the End Sub line and then use this line in your code:
If Not SheetExists(“MySheetName”) Then
Best regards,
Trowa
        
    
    
    
    
Oct 4, 2016 at 11:53 AM
Thanks so much, that works brilliantly. The only thing is when it reaches the end of the list it tries to copy 'Template' again and comes up with a Run-time error 1004 "That name is already taken. Try a different one".
If you can suggest anything that would be very helpful.
Thanks
Rachael
Oct 4, 2016 at 12:01 PM
That would suggest a duplicate entry in your Room name list.
I downloaded your file, run the code and no error occured.
What did you change?
Best regards,
Trowa
Oct 4, 2016 at 12:08 PM
Sub CreateSheetsFromAList() Dim MyCell, MyRange As Range Set MyRange = Sheets("Data Entry").Range("A2") Set MyRange = Range(MyRange, MyRange.End(xlDown)) Sheets("Template").Visible = True For Each MyCell In MyRange Sheets("Template").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = MyCell.Value ' renames the new worksheet Range("F3").Value = MyCell.Value Range("F4").Value = MyCell.Offset(0, 1).Value Next MyCell Sheets("Template").Visible = False End SubOct 4, 2016 at 12:10 PM
Apologies, I now understand what I had done, the room name list I used was a longer one and yes there was a duplicate.
I guess I need to now work on a way of it looking at the Room Name and the Level, so it won't see it as a duplicate.
Thanks so much again for your help.
Kind regards
Rachael