Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 35,218
Default Copy Paste sections of data

I'd look here first:

Ron de Bruin's EasyFilter addin:
http://www.rondebruin.nl/easyfilter.htm

And then he

Code from Debra Dalgleish's site:
http://www.contextures.com/excelfiles.html

Create New Sheets from Filtered List -- uses an Advanced Filter to create
separate sheet of orders for each sales rep visible in a filtered list; macro
automates the filter. AdvFilterRepFiltered.xls 35 kb

Update Sheets from Master -- uses an Advanced Filter to send data from
Master sheet to individual worksheets -- replaces old data with current.
AdvFilterCity.xls 55 kb

Nikki wrote:

Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and, when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name wanted is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)



  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

Thank you - this is such a time saver....

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and, when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name wanted is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)




  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and, when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name wanted is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)






  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on almost
any criteria. You could add code that would take the created sub-database and use it as the source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot table and
start recording a macro, then recreate the pivot table. Then post the code here, and we can make it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and, when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)






  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on almost
any criteria. You could add code that would take the created sub-database and use it as the source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot table and
start recording a macro, then recreate the pivot table. Then post the code here, and we can make it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and, when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)







  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each time
summing the data in C), you could use something like this to first sort the data, and then add the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing the C to
your last column letter...and other changes. But, going on three columns for now, add this new code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on
almost
any criteria. You could add code that would take the created sub-database and use it as the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we can make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)









  #9   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

One last question and I promise I will not ask another one "today" that
is....ha ha - can you please tell me where would be a good place to insert my
print range setup macro. I am trying to add this at the end but it is giving
me an error. I am new to this can you tell? Thanks so so so much....

"Bernie Deitrick" wrote:

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each time
summing the data in C), you could use something like this to first sort the data, and then add the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing the C to
your last column letter...and other changes. But, going on three columns for now, add this new code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on
almost
any criteria. You could add code that would take the created sub-database and use it as the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we can make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)










  #10   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

Nikki,

After the line

mySht.Cells.EntireColumn.AutoFit

use something like

mySht..PageSetup.PrintArea = "$A$1:$D$" & mySht.Cells(Rows.Count,4).End(xlUp).Row

Remember, the printArea property takes a string (the range address), not a range.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
One last question and I promise I will not ask another one "today" that
is....ha ha - can you please tell me where would be a good place to insert my
print range setup macro. I am trying to add this at the end but it is giving
me an error. I am new to this can you tell? Thanks so so so much....

"Bernie Deitrick" wrote:

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each
time
summing the data in C), you could use something like this to first sort the data, and then add
the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing the C
to
your last column letter...and other changes. But, going on three columns for now, add this new
code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on
almost
any criteria. You could add code that would take the created sub-database and use it as the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot
table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we can
make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)














  #11   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

Oops. I put two dots in mySht..PageSetup - should only be one.....

HTH,
Bernie
MS Excel MVP


"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Nikki,

After the line

mySht.Cells.EntireColumn.AutoFit

use something like

mySht..PageSetup.PrintArea = "$A$1:$D$" & mySht.Cells(Rows.Count,4).End(xlUp).Row

Remember, the printArea property takes a string (the range address), not a range.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
One last question and I promise I will not ask another one "today" that
is....ha ha - can you please tell me where would be a good place to insert my
print range setup macro. I am trying to add this at the end but it is giving
me an error. I am new to this can you tell? Thanks so so so much....

"Bernie Deitrick" wrote:

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each
time
summing the data in C), you could use something like this to first sort the data, and then add
the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing the
C to
your last column letter...and other changes. But, going on three columns for now, add this new
code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on
almost
any criteria. You could add code that would take the created sub-database and use it as the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot
table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we can
make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)














  #12   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 184
Default Copy Paste sections of data

What if I wanted to add in legal paper size instead of Letter?

"Bernie Deitrick" wrote:

Oops. I put two dots in mySht..PageSetup - should only be one.....

HTH,
Bernie
MS Excel MVP


"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Nikki,

After the line

mySht.Cells.EntireColumn.AutoFit

use something like

mySht..PageSetup.PrintArea = "$A$1:$D$" & mySht.Cells(Rows.Count,4).End(xlUp).Row

Remember, the printArea property takes a string (the range address), not a range.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
One last question and I promise I will not ask another one "today" that
is....ha ha - can you please tell me where would be a good place to insert my
print range setup macro. I am trying to add this at the end but it is giving
me an error. I am new to this can you tell? Thanks so so so much....

"Bernie Deitrick" wrote:

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each
time
summing the data in C), you could use something like this to first sort the data, and then add
the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing the
C to
your last column letter...and other changes. But, going on three columns for now, add this new
code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based on
almost
any criteria. You could add code that would take the created sub-database and use it as the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot
table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we can
make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol & "1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)















  #13   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 5,441
Default Copy Paste sections of data

mySht.PageSetup.PaperSize = xlPaperLegal


HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
What if I wanted to add in legal paper size instead of Letter?

"Bernie Deitrick" wrote:

Oops. I put two dots in mySht..PageSetup - should only be one.....

HTH,
Bernie
MS Excel MVP


"Bernie Deitrick" <deitbe @ consumer dot org wrote in message
...
Nikki,

After the line

mySht.Cells.EntireColumn.AutoFit

use something like

mySht..PageSetup.PrintArea = "$A$1:$D$" & mySht.Cells(Rows.Count,4).End(xlUp).Row

Remember, the printArea property takes a string (the range address), not a range.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
One last question and I promise I will not ask another one "today" that
is....ha ha - can you please tell me where would be a good place to insert my
print range setup macro. I am trying to add this at the end but it is giving
me an error. I am new to this can you tell? Thanks so so so much....

"Bernie Deitrick" wrote:

Nikki,

I don't know your data structure, but assuming you want to group by column A, then by B (each
time
summing the data in C), you could use something like this to first sort the data, and then
add
the
subtotals. If you have more than three columns, you will need to adjust "A1:C" by changing
the
C to
your last column letter...and other changes. But, going on three columns for now, add this
new
code
after the line

mySht.Cells.EntireColumn.AutoFit

'***New code****

With mySht.Range("A1:C" & mySht.Cells(Rows.Count, 3).End(xlUp).Row)
.Sort Key1:=mySht.Range("A2"), _
Order1:=xlAscending, Key2:=mySht.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End With

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Pivot Tables are excellent but I need to send the files to Sales folks in the
field and they are not "technically savy" enough to work with Pivot Tables.
Is there a way to get subtotals to work. Each time I subtotal my data looks
messed up when I perform the second subtotal. Any other ideas?
Thanks again..

"Bernie Deitrick" wrote:

Nikki,

Take a look at Pivot tables, which allow you to very easily do subtotals and totals based
on
almost
any criteria. You could add code that would take the created sub-database and use it as
the
source
of a pivot table, added to a new sheet in each workbook, perhaps.

Play with the pivot table, and when you get it looking the way you want, delete the pivot
table
and
start recording a macro, then recreate the pivot table. Then post the code here, and we
can
make
it
flexible to work with various size data sets.

HTH,
Bernie
MS Excel MVP


"Nikki" wrote in message
...
Can I ask one more question? Since I have used your code to copy and paste
each Sales Rep into a new file, I now need to subtotal each customer and then
by item number. I can create a simple Macro and go into each file and create
two subtotals. However, is there a code that would allow me to subtotal each
customer then by products within each customer? I know I could subtotal by
customer and then create a new subtotal by Item but wanted to see if there
was another way to tackle this.

Thanks again.....you are very helpful and have saved my day!!!!!

"Bernie Deitrick" wrote:

Nikki,

Take off the subtotals, then run the code below. Select one cell within your database
and,
when
asked, reply with the column letter on which to base the extract.

Also, I have assumed that you have a header row, contiguous data, and that workbook
name
wanted
is
"Workbook " plus the keyvalue.


HTH,
Bernie
MS Excel MVP


Sub ExportDatabaseToSeparateFiles()
'Export is based on the value in the desired column
Dim myCell As Range
Dim mySht As Worksheet
Dim myName As String
Dim myArea As Range
Dim myShtName As String
Dim KeyCol As String
Dim myField As Integer

myShtName = ActiveSheet.Name
KeyCol = InputBox("What column letter to use as key?")

Set myArea = Intersect(ActiveCell.CurrentRegion, Range(KeyCol &
"1").EntireColumn).Cells

Set myArea = myArea.Offset(1, 0).Resize(myArea.Rows.Count - 1, 1)
myField = myArea.Column - ActiveCell.CurrentRegion.Cells(1).Column + 1

For Each myCell In myArea
On Error GoTo NoSheet
myName = Worksheets(myCell.Value).Name
GoTo SheetExists:
NoSheet:
Set mySht = Worksheets.Add(Befo=Worksheets(1))
mySht.Name = myCell.Value
With myCell.CurrentRegion
.AutoFilter Field:=myField, Criteria1:=myCell.Value
.SpecialCells(xlCellTypeVisible).Copy _
mySht.Range("A1")
mySht.Cells.EntireColumn.AutoFit
.AutoFilter
End With
Resume
SheetExists:
Next myCell

For Each mySht In ActiveWorkbook.Worksheets
If mySht.Name = myShtName Then
Exit Sub
Else
mySht.Move
ActiveWorkbook.SaveAs "Workbook " & ActiveSheet.Name & ".xls"
ActiveWorkbook.Close
End If
Next mySht
End Sub




"Nikki" wrote in message
...
Hi All:
I have 32,000 lines of data that is subtotalled by customer Name and sales
totals. Is there a way to copy and paste into a new worksheet at each change
in customer name? I found code that will work for a simple copy and past but
do any of you have a code that will copy and paste into a new workbook at
each change in name. I need to separate each customer so I can email each
individual file to each customer.

Thank to you all for your help.

Nikki :o)

















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
Copy and paste VISIBLE data Jaytee Excel Discussion (Misc queries) 3 November 1st 08 09:13 PM
copy and paste filtered data Churley Excel Discussion (Misc queries) 6 September 4th 07 04:17 PM
filted data, copy and paste a col. puts data in wrong row how fix chris_fig New Users to Excel 1 October 16th 06 04:26 PM
Excel cut/Paste Problem: Year changes after data is copy and paste Asif Excel Discussion (Misc queries) 2 December 9th 05 05:16 PM
how do I copy and paste data with a formula? ptaylorneedshelp Excel Discussion (Misc queries) 4 November 8th 05 09:05 PM


All times are GMT +1. The time now is 07:47 AM.

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"