Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
I am trying to create a macro in Excel 97 that will select some autofiltered cells from one sheet , copy and paste them to another sheet. The code that I am using is: With Sheets("Initial Test Store Data").AutoFilter.Range On Error Resume Next Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) ..SpecialCells (xlCellTypeVisible) Set Year_Week_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Retail_Outlet_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Product_Types = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With But when running the program VB does nothing at this point. Can you help me? Thank you |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You set 4 variables to the same range (visible cells in the autofilter
except the header row, first column). You never do a copy Sum_Order_Amt.Entirerow.copy _ Destination:=worksheets("Sheet2").Range("A1") With Sheets("Initial Test Store Data").AutoFilter.Range On Error Resume Next Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) ..SpecialCells (xlCellTypeVisible) Set Year_Week_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Retail_Outlet_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Product_Types = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With -- Regards, Tom Ogilvy "Annita" wrote in message om... Hi, I am trying to create a macro in Excel 97 that will select some autofiltered cells from one sheet , copy and paste them to another sheet. The code that I am using is: With Sheets("Initial Test Store Data").AutoFilter.Range On Error Resume Next Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) .SpecialCells (xlCellTypeVisible) Set Year_Week_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Retail_Outlet_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Product_Types = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With But when running the program VB does nothing at this point. Can you help me? Thank you |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
It would appear that you are setting four object variables to refer to
the same range. But then, I don't see any attempt to copy anything. Maybe, you want something like: With Sheets("Initial Test Store Data").AutoFilter.Range .SpecialCells(xlCellTypeVisible).Copy _ Destination:=Worksheets("sheet2").Range("a1") End With Worksheets("sheet2").Range("a1").EntireRow.Delete Also, unless you have a very specific reason why you need to avoid errors with 'On Error Resume Next' don't use such a statement. All that it does is make debugging difficult, if not impossible. There are a few subtle problems with your code. * Rows.Count returns a count of only the rows in the first area of a non-contiguous range. * What does it mean to resize a range that contains multiple areas? -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , akats80 @hotmail.com says... Hi, I am trying to create a macro in Excel 97 that will select some autofiltered cells from one sheet , copy and paste them to another sheet. The code that I am using is: With Sheets("Initial Test Store Data").AutoFilter.Range On Error Resume Next Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) .SpecialCells (xlCellTypeVisible) Set Year_Week_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Retail_Outlet_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Product_Types = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With But when running the program VB does nothing at this point. Can you help me? Thank you |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
There are a few subtle problems with your code.
* Rows.Count returns a count of only the rows in the first area of a non-contiguous range. but if .Rows.count is qualified by With Sheets("Initial Test Store Data").AutoFilter.Range as it appears to be in (for example) Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells (xlCellTypeVisible) Then it should be a contiguous single area and appropriately used here to exclude the header from the rest of the range. -- Regards, Tom Ogilvy "Tushar Mehta" wrote in message news:MPG.1b867ed4601d21ac9898d0@news-server... It would appear that you are setting four object variables to refer to the same range. But then, I don't see any attempt to copy anything. Maybe, you want something like: With Sheets("Initial Test Store Data").AutoFilter.Range .SpecialCells(xlCellTypeVisible).Copy _ Destination:=Worksheets("sheet2").Range("a1") End With Worksheets("sheet2").Range("a1").EntireRow.Delete Also, unless you have a very specific reason why you need to avoid errors with 'On Error Resume Next' don't use such a statement. All that it does is make debugging difficult, if not impossible. There are a few subtle problems with your code. * Rows.Count returns a count of only the rows in the first area of a non-contiguous range. * What does it mean to resize a range that contains multiple areas? -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , akats80 @hotmail.com says... Hi, I am trying to create a macro in Excel 97 that will select some autofiltered cells from one sheet , copy and paste them to another sheet. The code that I am using is: With Sheets("Initial Test Store Data").AutoFilter.Range On Error Resume Next Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) .SpecialCells (xlCellTypeVisible) Set Year_Week_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Retail_Outlet_Number = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) Set Product_Types = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells(xlCellTypeVisible) On Error GoTo 0 End With But when running the program VB does nothing at this point. Can you help me? Thank you |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Tom,
For some reason, in interpreting the post, I mentally transformed ..Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells (xlCellTypeVisible) into ..SpecialCells (xlCellTypeVisible).Offset(1, 0) _ .Resize(.Rows.Count - 1, 1) and proceeded with that as the starting point. Duh! -- Regards, Tushar Mehta www.tushar-mehta.com Excel, PowerPoint, and VBA add-ins, tutorials Custom MS Office productivity solutions In article , says... There are a few subtle problems with your code. * Rows.Count returns a count of only the rows in the first area of a non-contiguous range. but if .Rows.count is qualified by With Sheets("Initial Test Store Data").AutoFilter.Range as it appears to be in (for example) Set Sum_Order_Amt = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _ .SpecialCells (xlCellTypeVisible) Then it should be a contiguous single area and appropriately used here to exclude the header from the rest of the range. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Copy nonadjacent Autofiltered cells to another sheet | Excel Discussion (Misc queries) | |||
How do I add up cells that are autofiltered? | Excel Worksheet Functions | |||
How to change shade of cells when selecting multiple cells | Excel Discussion (Misc queries) | |||
Pasting copied AutoFiltered cells in Excel2007 | Excel Discussion (Misc queries) | |||
Ranking With Sum Product Formulas over Autofiltered Cells | Excel Discussion (Misc queries) |