Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1072
  • Last Modified:

Excel 2007/2010: traverse data range, create new sheet per row, copy current row into new sheet

Hi - got a problem i hope you'd be able to help me solve.

I have  workbook (attached here) with two sheets, "Data Input" & "Format" - "Format" is a hidden sheet. In the "Data Input" sheet I have 1 header row (row 1) and X data rows (rows 2-X). I need to for each data-row:

- Create a copy of the "Format" sheet
- Copy the current data row from "Data Input" into the newly created copy of "Format" in A36:X36
- set the name of the newly created sheet to the value in cell B36
- Hide range A35:X36 in the newly created sheet

When done for all data-rows i need to

- Hide the "Data Input" sheet

Any help would be greatly appreciated!

Br Jonas Solar-Weekly-0.1.xls
0
decisionfocus
Asked:
decisionfocus
  • 4
  • 3
1 Solution
 
SiddharthRoutCommented:
Format Sheet Missing.

Sid
0
 
decisionfocusAuthor Commented:
Hi Sid,

Sorry - have attached new file. The format sheet is hidden but unprotected.

Br Jonas
Solar-Weekly-0.2.xls
0
 
SiddharthRoutCommented:
The code is almost ready... :)

Just cleaning it and testing it :)

Sid
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
SiddharthRoutCommented:
Ok here is the file. Please run the macro Sample in Module 1.

Sid

Code Used

Sub Sample()
    Dim i As Long, LastRow As Long
    Dim ws1 As Worksheet, ws2 As Worksheet
    
    On Error GoTo Whoa
    
    Application.ScreenUpdating = False
    
    Set ws1 = Sheets("Data Input")
    
    LastRow = ws1.Range("A" & Rows.Count).End(xlUp).Row
    
    Sheets("Format").Visible = True
    
    For i = 2 To LastRow
        Sheets("Format").Copy After:=Sheets(Sheets.Count)
        Set ws2 = ActiveSheet
        ws2.Name = ws1.Range("B" & i).Value
        ws1.Range("A" & i & ":X" & i).Copy _
        ws2.Range("A36:X36")
        ws2.Rows("35:36").EntireRow.Hidden = True
    Next i
    
LetsContinue:
    Sheets("Format").Visible = False
    Application.ScreenUpdating = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
End Sub

Open in new window

Solar-Weekly-0.1.xls
0
 
decisionfocusAuthor Commented:
That is absolutely AMAZING - thanks so much for your help! I actually have another question, but i prefer to create it as a new question so i can give more points for it - hope you'll be able to take a quick look at it as well..
0
 
decisionfocusAuthor Commented:
Amazingly quick & correc answer - best help imaginable!
0
 
SiddharthRoutCommented:
>>>hope you'll be able to take a quick look at it as well..

Sure not a problem :)

Sid
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now