Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Anyhelp would be greatly appreciated..
I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Michael try this:
Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Sorry forgot to put it in the right place:
Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Sorry forgot to put it in the right place.
Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Sub Macro1()
ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Sub Macro1()
ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Michael,
Try the following. Note: this should also have some error trapping to make sure the cells in col B actually have a sheet with the same name ( no blanks or typos) Sub CopyToSheets() Dim Rng As Range Dim oCell As Range Set Rng = Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row) For Each oCell In Rng oCell.EntireRow.Copy _ Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1, 0) Next oCell End Sub "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
David,
When I tried your code (WinXP+XL2003) received a "Select method of range class failed error" on line Range("A1").Select J_J "David" wrote in message ... Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
You must be running it from a sheet module.
run it from a general module. -- Regards, Tom Ogilvy "J_J" wrote in message ... David, When I tried your code (WinXP+XL2003) received a "Select method of range class failed error" on line Range("A1").Select J_J "David" wrote in message ... Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#10
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
The problem lies in which sheet is the active sheet. It's probably not the
"ToSheet". Use the other macro you were given. AIR, it was only a couple of lines. It demonstrates that you don't need to select and activate cells and worksheets to work with them, and doing so just slows things down. On Sat, 5 Mar 2005 13:22:59 +0200, "J_J" wrote: David, When I tried your code (WinXP+XL2003) received a "Select method of range class failed error" on line Range("A1").Select J_J "David" wrote in message ... Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select Range("A1").Select Selection.End(xlDown).Select If ActiveCell.Row = 65536 Then Range("A2").Select Else ActiveCell.Offset(1, 0).Range("A1").Select End If ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub "David" wrote: Michael try this: Sub Macro1() ThisSheet = ActiveSheet.Name Range("B1").Select ActiveCell.Offset(1, 0).Range("A1").Select Do Until ActiveCell.Value = "" ToSheet = ActiveCell.Value ActiveCell.EntireRow.Copy Sheets(ToSheet).Select ActiveSheet.Paste Sheets(ThisSheet).Select ActiveCell.Offset(1, 0).Range("A1").Select Loop Application.CutCopyMode = False End Sub Thanks, "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
#11
Posted to microsoft.public.excel.programming
|
|||
|
|||
copy macro help
Thank you everyone so much for your replies. I will try it now and report back.
"gocush" wrote: Michael, Try the following. Note: this should also have some error trapping to make sure the cells in col B actually have a sheet with the same name ( no blanks or typos) Sub CopyToSheets() Dim Rng As Range Dim oCell As Range Set Rng = Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row) For Each oCell In Rng oCell.EntireRow.Copy _ Destination:=Sheets(oCell.Value).Range("A65536").E nd(xlUp).Offset(1, 0) Next oCell End Sub "Michael A" wrote: Anyhelp would be greatly appreciated.. I need a macro that will copy all the rows on a spreadsheet and send them to the appropriate sheets based on the value in the B column in the row. For example, B5 has value as "RES" so i want that row sent to the next available row on the RES spread sheet. If it was "BOB" then i would want it sent to the bob spreadsheet. Could someone please help me with this? Thank you! I apolgize if this is a duplicate post. Ive tried to post several times and hours later it hasn't showed up.. Thanks! |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Macro copy | Excel Discussion (Misc queries) | |||
Copy workbook, don't copy macro | Excel Discussion (Misc queries) | |||
how to count/sum by function/macro to get the number of record to do copy/paste in macro | Excel Programming | |||
Macro To Copy Down | Excel Programming |