Results 1 to 14 of 14

Excel 2007 : Copying from multiple templates based on criteria.

Threaded View

  1. #1
    Registered User
    Join Date
    11-23-2011
    Location
    California
    MS-Off Ver
    Excel 2007
    Posts
    14

    Copying from multiple templates based on criteria.

    I have a summary page where you enter item numbers followed by the item name. I have a worksheet used as a template which I named template >.<. I have a command button that when pressed will make a new sheet copied from the template and name the sheet according to the item. My question is, how can I modify this code to copy from different templates based on criteria that I input next to the item. Say I have Item 1 in A1, Item Name in A2 and Item type in A3. Right now the macro will name the worksheet depending on A2 but will just copy the template worksheet. One more thing, how do I change this code so that I can copy from hidden worksheets? I'm new here so I hope I posted this right.

    Option Explicit
    
    Private Sub CreateSheets_Click()
    Dim strCol As String
    Dim strRow As String
    Dim rngStart As Range
    Dim rngEnd As Range
    Dim rngCell As Range
    Dim strWsName As String
    Dim strSrcName As String
    
    On Error GoTo ErrHnd
    
    'setup column letter and first row number containing names
    'column
    strCol = "Q"
    'row (number is in double quotes)
    strRow = "7"
    
    'turn off screen updating to stop flicker & increase speed
    Application.ScreenUpdating = False
                
    'save this worksheet's name, so we can go back to it later
    strSrcName = ActiveSheet.Name
    
    'set start of data in selected column
    Set rngStart = ActiveSheet.Range(strCol & strRow)
    'find end of data in selected column
    Set rngEnd = ActiveSheet.Range(strCol & CStr(Application.Rows.Count)) _
                .End(xlUp)
    
    'loop through cells in used range
    For Each rngCell In ActiveSheet.Range(rngStart, rngEnd)
        'ignore empty cells in range
        If rngCell.Text <> "" Then
            'get worksheet name
            strWsName = rngCell.Text
            'test if worksheet exists
            On Error Resume Next
             If Worksheets(strWsName) Is Nothing Then
                'worksheet does not exist
                'reinstate error handling
                On Error GoTo ErrHnd
                'copy worksheet named "Template"
                Worksheets("Template").Copy After:=Worksheets(Worksheets.Count)
                'name new sheet
                Worksheets(Worksheets.Count).Name = strWsName
                Else
                'worksheet already exists
                'reinstate error handling
                On Error GoTo ErrHnd
            End If
        End If
    Next rngCell
    
    'go back to the source worksheet
    Worksheets(strSrcName).Activate
    
    'reinstate screen updating
    Application.ScreenUpdating = True
    Exit Sub
    
    'error handler
    ErrHnd:
    Err.Clear
    'go back to the source worksheet
    Worksheets(strSrcName).Activate
    'reinstate screen updating
    Application.ScreenUpdating = True
    
    End Sub
    Last edited by Pololuck; 11-29-2011 at 11:32 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1