Welcome to the Excel Forum

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed.

Please Register to Remove these Ads

Please Register to Remove these Ads



Reply
  #1  
Old 06-06-2005, 01:12 AM
rroach rroach is offline
Registered User
 
Join Date: 14 Mar 2005
Posts: 21
rroach is becoming part of the community
find cell location of max value in column

Please Register to Remove these Ads

HI,

The following macro finds the max value and writes it to a file. I would also like to know the cell location where the max value was found (a25, for example). I'm stumped. The MS KB article has an solution, which is pasted in below, but I cannot get it to worl. Suggestions on getting that to work or another solution?

Tx, Rob

MY MACRO
Sub Macro1()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A10:A250")
top_max_val = Application.WorksheetFunction.Max(myRange)
MsgBox top_max_val
Open "c:\testfile.txt" For Append As #1
'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName ' Write blank line.
Close #1
'ActiveWorkbook.Close
End Sub

The MS KB solution to finding the cell location:
To return the address of a cell in a column (in this example, column A, cells A1:A10), use the appropriate formula in the following table. For this
address Use this formula
------------------------------------------------------------------------
Cell with
largest
value =CELL("address",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0))

Any help much appreciated. As usual, deadline looms.

Rob
Reply With Quote
  #2  
Old 06-06-2005, 01:54 AM
mangesh_yadav mangesh_yadav is offline
Forum Guru
 
Join Date: 10 Jun 2004
Location: India
Posts: 1,068
mangesh_yadav is becoming part of the community
Hi Rob,

=CELL("address",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0))

works properly.
Just check that range A1:A10 is the range which holds your data, and A1 is the first cell in the range. Replace these with correct values if they are different from your case.

This is a simple worksheet formula. Do you want a VBA solution instead.

In VBA you can call the same formula by using the evaluate e.g.
= EVALUATE("CELL(""address"",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0))")

Mangesh
Reply With Quote
  #3  
Old 06-06-2005, 10:22 AM
rroach rroach is offline
Registered User
 
Join Date: 14 Mar 2005
Posts: 21
rroach is becoming part of the community
thank you

'evaluate' is what i was missing.

thanks!

Rob
Reply With Quote
  #4  
Old 06-06-2005, 10:27 AM
mangesh_yadav mangesh_yadav is offline
Forum Guru
 
Join Date: 10 Jun 2004
Location: India
Posts: 1,068
mangesh_yadav is becoming part of the community
Thanks for the feedback. You could also do it in a different manner, but since you had a worksheet function already, you might as well use it in VBA.

Mangesh
Reply With Quote
  #5  
Old 06-06-2005, 11:41 AM
rroach rroach is offline
Registered User
 
Join Date: 14 Mar 2005
Posts: 21
rroach is becoming part of the community
use a range in worksheet function

Extending the previous question. I am too dense to see what I am doing wrong in the following VBA statement. I'd like to create a variable that contains the location of the last cell.

1. Then create a range that is from 250 cells before last cell to last cell.

2. Then repeat what Mangesh helped me figure out form before--find the max in that range. Having trouble passing range variables to the statements? Ideas?

1. bot_max_loc = Evaluate("CELL(""address"",Range("A1").SpecialCells(xlCellTypeLastCell).Row))--want to get location (a:767) of last cell, then use that in a range?

2. top_max_loc = Evaluate("CELL(""address"",OFFSET(A10,MATCH(MAX(a10:a250),a10:a250,0)-1,0))")--how to substitute named ranges for a10:a250?

Thanks in advance.

Rob
Reply With Quote
  #6  
Old 06-06-2005, 12:05 PM
Tom Ogilvy
Guest
 
Posts: n/a
Re: find cell location of max value in column

Sub Macro1()
Dim top_max_loc as Variant
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A10:A250")
top_max_val = Application.WorksheetFunction.Max(myRange)
top_max_Loc = application.Match(top_max_val,myrange,0)
top_max_Loc= myrange(top_max_loc).Address
MsgBox top_max_val
Open "c:\testfile.txt" For Append As #1
'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName '
Write blank line.
Close #1
'ActiveWorkbook.Close
End Sub

--
Regards,
Tom Ogilvy


"rroach" <rroach.1q6v6c_1118034303.6312@excelforum-nospam.com> wrote in
message news:rroach.1q6v6c_1118034303.6312@excelforum-nospam.com...
>
> HI,
>
> The following macro finds the max value and writes it to a file. I
> would also like to know the cell location where the max value was found
> (a25, for example). I'm stumped. The MS KB article has an solution,
> which is pasted in below, but I cannot get it to worl. Suggestions on
> getting that to work or another solution?
>
> Tx, Rob
>
> MY MACRO
> Sub Macro1()
> Dim myRange As Range
> Set myRange = Worksheets("Sheet1").Range("A10:A250")
> top_max_val = Application.WorksheetFunction.Max(myRange)
> MsgBox top_max_val
> Open "c:\testfile.txt" For Append As #1
> 'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName '
> Write blank line.
> Close #1
> 'ActiveWorkbook.Close
> End Sub
>
> The MS KB solution to finding the cell location:
> To return the address of a cell in a column (in this example, column A,
> cells A1:A10), use the appropriate formula in the following table.
> For this
> address Use this formula
>
> ------------------------------------------------------------------------
> Cell with
> largest
> value
> =CELL("address",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0))
>
> Any help much appreciated. As usual, deadline looms.
>
> Rob
>
>
> --
> rroach
> ------------------------------------------------------------------------
> rroach's Profile:

http://www.excelforum.com/member.php...o&userid=21093
> View this thread: http://www.excelforum.com/showthread...hreadid=376682
>



Reply With Quote
  #7  
Old 06-06-2005, 01:05 PM
Tom Ogilvy
Guest
 
Posts: n/a
Re: find cell location of max value in column

Sub Macro1()
Dim top_max_loc as Variant
Dim myRange As Range
With Worksheets("Sheet1")
Set myRange = .Range(.Cells(10,1),cells(rows.count,1).End(xlup))
top_max_val = Application.WorksheetFunction.Max(myRange)
top_max_Loc = application.Match(top_max_val,myrange,0)
top_max_Loc= myrange(top_max_loc).Address
MsgBox top_max_val
Open "c:\testfile.txt" For Append As #1
'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName '
Write blank line.
Close #1
'ActiveWorkbook.Close
End Sub

continue to ignore if you prefer your much slower approach.



--
Regards,
Tom Ogilvy


"Tom Ogilvy" <twogilvy@msn.com> wrote in message
news:uIzY%23WqaFHA.1456@TK2MSFTNGP15.phx.gbl...
> Sub Macro1()
> Dim top_max_loc as Variant
> Dim myRange As Range
> Set myRange = Worksheets("Sheet1").Range("A10:A250")
> top_max_val = Application.WorksheetFunction.Max(myRange)
> top_max_Loc = application.Match(top_max_val,myrange,0)
> top_max_Loc= myrange(top_max_loc).Address
> MsgBox top_max_val
> Open "c:\testfile.txt" For Append As #1
> 'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName '
> Write blank line.
> Close #1
> 'ActiveWorkbook.Close
> End Sub
>
> --
> Regards,
> Tom Ogilvy
>
>
> "rroach" <rroach.1q6v6c_1118034303.6312@excelforum-nospam.com> wrote in
> message news:rroach.1q6v6c_1118034303.6312@excelforum-nospam.com...
> >
> > HI,
> >
> > The following macro finds the max value and writes it to a file. I
> > would also like to know the cell location where the max value was found
> > (a25, for example). I'm stumped. The MS KB article has an solution,
> > which is pasted in below, but I cannot get it to worl. Suggestions on
> > getting that to work or another solution?
> >
> > Tx, Rob
> >
> > MY MACRO
> > Sub Macro1()
> > Dim myRange As Range
> > Set myRange = Worksheets("Sheet1").Range("A10:A250")
> > top_max_val = Application.WorksheetFunction.Max(myRange)
> > MsgBox top_max_val
> > Open "c:\testfile.txt" For Append As #1
> > 'Write #1, top_max_loc, top_max_val, ActiveWorkbook.FullName '
> > Write blank line.
> > Close #1
> > 'ActiveWorkbook.Close
> > End Sub
> >
> > The MS KB solution to finding the cell location:
> > To return the address of a cell in a column (in this example, column A,
> > cells A1:A10), use the appropriate formula in the following table.
> > For this
> > address Use this formula
> >
> > ------------------------------------------------------------------------
> > Cell with
> > largest
> > value
> > =CELL("address",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0))
> >
> > Any help much appreciated. As usual, deadline looms.
> >
> > Rob
> >
> >
> > --
> > rroach
> > ------------------------------------------------------------------------
> > rroach's Profile:

> http://www.excelforum.com/member.php...o&userid=21093
> > View this thread:

http://www.excelforum.com/showthread...hreadid=376682
> >

>
>



Reply With Quote


Reply

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Forum Jump