ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   define Range in vba using contents of a cell that is named (https://www.excelbanter.com/excel-programming/424095-define-range-vba-using-contents-cell-named.html)

Brotherharry

define Range in vba using contents of a cell that is named
 
I'm writing a macro which will autofilter, copy and paste data
depending on values entered into certain cells

e.g.
cell A1, named 'lastrow', has the last row number of the available
data e.g. 468
cell A2 has the last column e.g. AM
cell A3 named 'mydatarange', contains a text string built using
concatenate e.g. $A$1:$AM:$468

in the macro, it should run the autofilter as below (illustrated with
fixed range data)

Sheets("MyRawData").Select
Range("A1").Select
ActiveSheet.Range("$A$1:$AM:$468").AutoFilter Field:=29,
Criteria1:= _
"pending"
Rows("1:465").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "Pending"
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


What I'm aiming for however is something like the below

Sheets("MyRawData").Select
Range("A1").Select
ActiveSheet.Range("mydatarange").AutoFilter Field:=29, Criteria1:=
_
"pending"
Rows("1:" & lastrow).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "Pending"
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


Hoping it's just a syntax knowledge shortfall....

JLGWhiz

define Range in vba using contents of a cell that is named
 
Is this what you are looking for?

Range("A3").Name = "mydatarange"
Range("mydatarange") = _
Range("$A$1:" & Range("A2").Value & Range("A1").Value)

Which should come out to
Range("mydatarange") = Range("A1:AM468")

"Brotherharry" wrote:

I'm writing a macro which will autofilter, copy and paste data
depending on values entered into certain cells

e.g.
cell A1, named 'lastrow', has the last row number of the available
data e.g. 468
cell A2 has the last column e.g. AM
cell A3 named 'mydatarange', contains a text string built using
concatenate e.g. $A$1:$AM:$468

in the macro, it should run the autofilter as below (illustrated with
fixed range data)

Sheets("MyRawData").Select
Range("A1").Select
ActiveSheet.Range("$A$1:$AM:$468").AutoFilter Field:=29,
Criteria1:= _
"pending"
Rows("1:465").Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "Pending"
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


What I'm aiming for however is something like the below

Sheets("MyRawData").Select
Range("A1").Select
ActiveSheet.Range("mydatarange").AutoFilter Field:=29, Criteria1:=
_
"pending"
Rows("1:" & lastrow).Select
Selection.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Sheet1").Select
Sheets("Sheet1").Name = "Pending"
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False


Hoping it's just a syntax knowledge shortfall....



All times are GMT +1. The time now is 12:29 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com