Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 5
Default defining names in a macro

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")


If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name

  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default defining names in a macro

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name


--

Dave Peterson
  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 5
Default defining names in a macro

hi,

Yes the Worksheets("Sheet1").Range("duplex") is a whole column.
the reason i put the myrangeD.text is if I don't have it in there when I run
the macro it comes up with a type mismatch error.

"Dave Peterson" wrote:

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name


--

Dave Peterson

  #4   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default defining names in a macro

If you want to look at the value or text of just one cell in that range, you
could use:

if myranged.cells(1).value = "x"
for the first cell in that single column range.

if myranged.cells(99).value = "x"
would look at the 99th cell (row 99) of that range.

I guess my question is this: Is there a reason you don't just use a formula
instead of the macro?

=IF(AND(D1="x",F1="x"),G1*2*0.045,
IF(AND(C1="x",F1="x"),G1*0.045,
IF(AND(D1="x",E1="x"),G1*2*0.008,
IF(AND(C1="x",E1="x"),G1*0.008,""))))

I'm guessing that myRangeD is column D, ..., myRangeH is column H. And the
formula would go in column H.

guidop12 wrote:

hi,

Yes the Worksheets("Sheet1").Range("duplex") is a whole column.
the reason i put the myrangeD.text is if I don't have it in there when I run
the macro it comes up with a type mismatch error.

"Dave Peterson" wrote:

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name


--

Dave Peterson


--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 5
Default defining names in a macro

I guess the reason why i used macros is because each row will contain a
differnet machine (ex: 6500 or c500 they are differnet printer types) so my
macros were corresponding with the differnet printers and the amount being
charge (because each printer has a differnet charge). My only frustration is
that the macros do work if I just have" Set myRangeD =
Worksheets("Sheet1").Range("d3")" which would be the current row that the
user is inputting in,, but it will not work if I have a name range

or if I do use a formula how can i distinguish between the printers
"Dave Peterson" wrote:

If you want to look at the value or text of just one cell in that range, you
could use:

if myranged.cells(1).value = "x"
for the first cell in that single column range.

if myranged.cells(99).value = "x"
would look at the 99th cell (row 99) of that range.

I guess my question is this: Is there a reason you don't just use a formula
instead of the macro?

=IF(AND(D1="x",F1="x"),G1*2*0.045,
IF(AND(C1="x",F1="x"),G1*0.045,
IF(AND(D1="x",E1="x"),G1*2*0.008,
IF(AND(C1="x",E1="x"),G1*0.008,""))))

I'm guessing that myRangeD is column D, ..., myRangeH is column H. And the
formula would go in column H.

guidop12 wrote:

hi,

Yes the Worksheets("Sheet1").Range("duplex") is a whole column.
the reason i put the myrangeD.text is if I don't have it in there when I run
the macro it comes up with a type mismatch error.

"Dave Peterson" wrote:

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name

--

Dave Peterson


--

Dave Peterson



  #6   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 5
Default defining names in a macro

Dave,

Disregard my last post, and I want to thank you, thank you, thank you for
steering me in the right direction. What I did was use your formula and then
made macros up for the differnet printer choices and it works great.

Again thank you

"Dave Peterson" wrote:

If you want to look at the value or text of just one cell in that range, you
could use:

if myranged.cells(1).value = "x"
for the first cell in that single column range.

if myranged.cells(99).value = "x"
would look at the 99th cell (row 99) of that range.

I guess my question is this: Is there a reason you don't just use a formula
instead of the macro?

=IF(AND(D1="x",F1="x"),G1*2*0.045,
IF(AND(C1="x",F1="x"),G1*0.045,
IF(AND(D1="x",E1="x"),G1*2*0.008,
IF(AND(C1="x",E1="x"),G1*0.008,""))))

I'm guessing that myRangeD is column D, ..., myRangeH is column H. And the
formula would go in column H.

guidop12 wrote:

hi,

Yes the Worksheets("Sheet1").Range("duplex") is a whole column.
the reason i put the myrangeD.text is if I don't have it in there when I run
the macro it comes up with a type mismatch error.

"Dave Peterson" wrote:

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name

--

Dave Peterson


--

Dave Peterson

  #7   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 35,218
Default defining names in a macro

You could also use something like:

Dim myRow as long
myrow = activecell.row

with activesheet
if .cells(myrow,myRangeD.column).value = "X" _
and .cells(myrow,myrangeF.column).value = "X" then
.cells(myrow,myrangeH.column).value _
= .cells(myrow,myRangeG.column) * 2 * 0.045
elseif .....

guidop12 wrote:

I guess the reason why i used macros is because each row will contain a
differnet machine (ex: 6500 or c500 they are differnet printer types) so my
macros were corresponding with the differnet printers and the amount being
charge (because each printer has a differnet charge). My only frustration is
that the macros do work if I just have" Set myRangeD =
Worksheets("Sheet1").Range("d3")" which would be the current row that the
user is inputting in,, but it will not work if I have a name range

or if I do use a formula how can i distinguish between the printers
"Dave Peterson" wrote:

If you want to look at the value or text of just one cell in that range, you
could use:

if myranged.cells(1).value = "x"
for the first cell in that single column range.

if myranged.cells(99).value = "x"
would look at the 99th cell (row 99) of that range.

I guess my question is this: Is there a reason you don't just use a formula
instead of the macro?

=IF(AND(D1="x",F1="x"),G1*2*0.045,
IF(AND(C1="x",F1="x"),G1*0.045,
IF(AND(D1="x",E1="x"),G1*2*0.008,
IF(AND(C1="x",E1="x"),G1*0.008,""))))

I'm guessing that myRangeD is column D, ..., myRangeH is column H. And the
formula would go in column H.

guidop12 wrote:

hi,

Yes the Worksheets("Sheet1").Range("duplex") is a whole column.
the reason i put the myrangeD.text is if I don't have it in there when I run
the macro it comes up with a type mismatch error.

"Dave Peterson" wrote:

Worksheets("Sheet1").Range("duplex") is a whole column?

If it is, then things like this:
If myRangeD.Text = "X"
aren't valid.

With multiple cells, the .text property will return Null.
You could use .Text to refer to what's displayed in a single cell, though.

If you used:
If myRangeD.Value = "X"
you'd have a different problem.

For multiple cells, .value returns an 2 dimensional array (x rows by y
columns). And you can't compare an array to that single value. (You could
compare a single element of that array to a single value, though.)



guidop12 wrote:

With the below coding and example of my spreadsheet

Dim myRangeD As Range, myRangeF As Range, myRangeC As Range, myRangeE As
Range, _
myRangeH As Range, myRangeG As Range
Worksheets("sheet1").Activate
Set myRangeD = Worksheets("Sheet1").Range("duplex")
Set myRangeF = Worksheets("Sheet1").Range("color")
Set myRangeC = Worksheets("Sheet1").Range("simplex")
Set myRangeE = Worksheets("sheet1").Range("b_w")
Set myRangeH = Worksheets("Sheet1").Range("price")
Set myRangeG = Worksheets("Sheet1").Range("of_sheets")

If myRangeD.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.045)
End If
If myRangeC.Text = "X" And myRangeF.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.045)
End If
If myRangeD.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 2 * 0.008)
End If
If myRangeC.Text = "X" And myRangeE.Text = "X" Then
myRangeH = (myRangeG * 1 * 0.008)
End If
End Sub

Job Machine Simplex Duplex B/W Color # of Sheets Price

79815 6500 X X 2965 $237.20

79700 C500 X X 420 $37.80

79718 6500 X X 25 $0.10

Each column has a defined name which highlights the whole column.
My question is why does my macro only work if I change this line to be
Set myRangeD = Worksheets("Sheet1").Range("D3") and not the name

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson
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
Help with defining names [email protected] Excel Worksheet Functions 3 February 14th 08 08:34 AM
Defining Regions with Names Elise148 Excel Discussion (Misc queries) 3 June 13th 07 02:19 PM
Excel 2007 defining names (areas) Kathrine Excel Worksheet Functions 0 April 23rd 07 08:46 PM
Defining Names in Excel RadioTraffic Excel Worksheet Functions 3 January 10th 07 02:41 AM
Defining non worksheet specific names... Steve Excel Worksheet Functions 0 June 29th 05 05:30 AM


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"