Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
I have a workbook that contains multiple identical worksheets and one
summary sheet. I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. 'Start loop For Each sht In wrk.Worksheets 'If worksheet in loop is the last one, stop execution If sht.Index = wrk.Worksheets.Count Then Exit For End If 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) 'Put data into the Master worksheet mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
Unless i misunderstood, try this:
'Start loop For Each sht In wrk.Worksheets if if not sht.name = "YourSummarySheetNameHere" then 'If not summary sheet, do the stuff, otherwise ignore. 'If worksheet in loop is the last one, stop execution If sht.Index = wrk.Worksheets.Count Then Exit For End If 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) 'Put data into the Master worksheet mst.Cells(65536, 1).End(xlUp).Offset(1).Resize (rng.Rows.Count, rng.Columns.Count).Value = rng.Value End if On 17 July, 16:20, dhermus wrote: I have a workbook that contains multiple identical worksheets and one summary sheet. *I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. * * 'Start loop * * For Each sht In wrk.Worksheets * * * * 'If worksheet in loop is the last one, stop execution * * * * If sht.Index = wrk.Worksheets.Count Then * * * * * * Exit For * * * * End If * * * * 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets * * * * Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) * * * * 'Put data into the Master worksheet * * * * mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
oops - type, you surely don't need the 2 'ifs' in this:
if if not sht.name On 17 July, 16:39, AB wrote: Unless i misunderstood, try this: * * *'Start loop * * *For Each sht In wrk.Worksheets * * * if if not sht.name = "YourSummarySheetNameHere" then 'If not summary sheet, do the stuff, otherwise ignore. * * * * *'If worksheet in loop is the last one, stop execution * * * * *If sht.Index = wrk.Worksheets.Count Then * * * * * * *Exit For * * * * *End If * * * * *'Data range in worksheet - starts from second row as first *rows are the header rows in all worksheets * * * * *Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End *(xlUp).Resize(, colCount)) * * * * 'Put data into the Master worksheet * * * * *mst.Cells(65536, 1).End(xlUp).Offset(1).Resize (rng.Rows.Count, *rng.Columns.Count).Value = rng.Value * * *End if On 17 July, 16:20, dhermus wrote: I have a workbook that contains multiple identical worksheets and one summary sheet. *I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. * * 'Start loop * * For Each sht In wrk.Worksheets * * * * 'If worksheet in loop is the last one, stop execution * * * * If sht.Index = wrk.Worksheets.Count Then * * * * * * Exit For * * * * End If * * * * 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets * * * * Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) * * * * 'Put data into the Master worksheet * * * * mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows..Count, rng.Columns.Count).Value = rng.Value- Hide quoted text - - Show quoted text - |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
you don't need to exit the FOR the way that you have done, just check that
the worksheet isn't the new sheet FOR EACH sht IN wrk.Worksheets IF sht.Name < mst.Name THEN ' copy the data Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End(xlUp).Resize(, colCount )) mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value END IF NEXT Note: where does the variable colCount get its value? maybe colCount = sht.Range("A1").End(xlRight).Column "dhermus" wrote in message ... I have a workbook that contains multiple identical worksheets and one summary sheet. I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. 'Start loop For Each sht In wrk.Worksheets 'If worksheet in loop is the last one, stop execution If sht.Index = wrk.Worksheets.Count Then Exit For End If 'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) 'Put data into the Master worksheet mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
On Jul 17, 11:45*am, "Patrick Molloy"
wrote: you don't need to exit the FOR the way that you have done, just check that the worksheet isn't the new sheet FOR EACH sht IN wrk.Worksheets * * IF sht.Name < mst.Name THEN * * * * ' copy the data * * * * Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End(xlUp).Resize(, colCount )) * * * * mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value * * END IF NEXT Note: where does the variable colCount *get its value? maybe colCount = sht.Range("A1").End(xlRight).Column "dhermus" wrote in message ... I have a workbook that contains multiple identical worksheets and one summary sheet. *I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. * *'Start loop * *For Each sht In wrk.Worksheets * * * *'If worksheet in loop is the last one, stop execution * * * *If sht.Index = wrk.Worksheets.Count Then * * * * * *Exit For * * * *End If * * * *'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets * * * *Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) * * * *'Put data into the Master worksheet * * * *mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value- Hide quoted text - - Show quoted text - Thank you, this provided what I needed. |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
merge worksheets macro
On Jul 17, 11:45*am, "Patrick Molloy"
wrote: you don't need to exit the FOR the way that you have done, just check that the worksheet isn't the new sheet FOR EACH sht IN wrk.Worksheets * * IF sht.Name < mst.Name THEN * * * * ' copy the data * * * * Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End(xlUp).Resize(, colCount )) * * * * mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value * * END IF NEXT Note: where does the variable colCount *get its value? maybe colCount = sht.Range("A1").End(xlRight).Column "dhermus" wrote in message ... I have a workbook that contains multiple identical worksheets and one summary sheet. *I am trying to add a new worksheet in the workbook with the merged data from the identical sheets, but I have not been able to exclude the summary worksheet. * *'Start loop * *For Each sht In wrk.Worksheets * * * *'If worksheet in loop is the last one, stop execution * * * *If sht.Index = wrk.Worksheets.Count Then * * * * * *Exit For * * * *End If * * * *'Data range in worksheet - starts from second row as first rows are the header rows in all worksheets * * * *Set rng = sht.Range(sht.Cells(2, 1), sht.Cells(65536, 1).End (xlUp).Resize(, colCount)) * * * *'Put data into the Master worksheet * * * *mst.Cells(65536, 1).End(xlUp).Offset(1).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value- Hide quoted text - - Show quoted text - I found I have multiple hidden worksheets that I must also exclude from my merge. Can you help with this statement? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Mail merge macro: select recipients from Excel during merge | Excel Programming | |||
How to merge / combine several worksheets into one new worksheet without VBA / Macro? FOR EXPERTS | Excel Worksheet Functions | |||
Macro to merge worksheets | Excel Programming | |||
How to merge worksheets on a key - merge horizontally, that is | Excel Programming | |||
Merge Worksheets | Excel Discussion (Misc queries) |