Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Approach for lookups

Hi

I have a working model now which uses named ranges, and I have written a VBA
function which looks up a value in the first column which is my index and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a better
word to do this. Have I missed some fundamental function which would do this
in VBA from a named range. Basically I use the range.Find method,and have to
find the offset from the start of the range in order to get my row and for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks


  #2   Report Post  
Posted to microsoft.public.excel.programming
JNW JNW is offline
external usenet poster
 
Posts: 480
Default Approach for lookups

Posting code always helps.
--
JNW


"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a VBA
function which looks up a value in the first column which is my index and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a better
word to do this. Have I missed some fundamental function which would do this
in VBA from a named range. Basically I use the range.Find method,and have to
find the offset from the start of the range in order to get my row and for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Approach for lookups

assume the named range Dog is in B3:B200

Set rng = range("Dog").find("ABC")
if not rng is nothing then
msgbox "Value from column H": " & rng.offset(0,6).Value
else
msgbox "ABC not found"
end if

--
Regards,
Tom Ogilvy




"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a VBA
function which looks up a value in the first column which is my index and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a better
word to do this. Have I missed some fundamental function which would do this
in VBA from a named range. Basically I use the range.Find method,and have to
find the offset from the start of the range in order to get my row and for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Approach for lookups

Thanks Tom, I was not aware of the offset, this is exactly what I needed




"Tom Ogilvy" wrote in message
...
assume the named range Dog is in B3:B200

Set rng = range("Dog").find("ABC")
if not rng is nothing then
msgbox "Value from column H": " & rng.offset(0,6).Value
else
msgbox "ABC not found"
end if

--
Regards,
Tom Ogilvy




"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a
VBA
function which looks up a value in the first column which is my index and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a
better
word to do this. Have I missed some fundamental function which would do
this
in VBA from a named range. Basically I use the range.Find method,and have
to
find the offset from the start of the range in order to get my row and
for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Approach for lookups

Thanks but I was not after code, more the best approach, which range.offset
seems to have given me.


"JNW" wrote in message
...
Posting code always helps.
--
JNW


"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a
VBA
function which looks up a value in the first column which is my index and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a
better
word to do this. Have I missed some fundamental function which would do
this
in VBA from a named range. Basically I use the range.Find method,and have
to
find the offset from the start of the range in order to get my row and
for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks







  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Approach for lookups

Actually,

Thinking about this further, what threw me I think was that I was wanting to
use the .Cells for absolute positioning within the named range, but for this
I needed to know the offset of the row which was found.

Range.Find(Key).Address(false,false,,R1C1,startran ge)

And THEN i had to parse the address, this works but was cumbersome, your
method of course returns the cell found and then you use the offset from
there. This is a different, cleaner approch than mine.

So thanks again.


"Mr Struggler" <lkjhlkj wrote in message
...
Thanks Tom, I was not aware of the offset, this is exactly what I needed




"Tom Ogilvy" wrote in message
...
assume the named range Dog is in B3:B200

Set rng = range("Dog").find("ABC")
if not rng is nothing then
msgbox "Value from column H": " & rng.offset(0,6).Value
else
msgbox "ABC not found"
end if

--
Regards,
Tom Ogilvy




"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a
VBA
function which looks up a value in the first column which is my index
and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a
better
word to do this. Have I missed some fundamental function which would do
this
in VBA from a named range. Basically I use the range.Find method,and
have to
find the offset from the start of the range in order to get my row and
for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks







  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Approach for lookups

Your welcome. Glad it is useful.

--
Regards,
Tom Ogilvy


"Mr Struggler" wrote:

Actually,

Thinking about this further, what threw me I think was that I was wanting to
use the .Cells for absolute positioning within the named range, but for this
I needed to know the offset of the row which was found.

Range.Find(Key).Address(false,false,,R1C1,startran ge)

And THEN i had to parse the address, this works but was cumbersome, your
method of course returns the cell found and then you use the offset from
there. This is a different, cleaner approch than mine.

So thanks again.


"Mr Struggler" <lkjhlkj wrote in message
...
Thanks Tom, I was not aware of the offset, this is exactly what I needed




"Tom Ogilvy" wrote in message
...
assume the named range Dog is in B3:B200

Set rng = range("Dog").find("ABC")
if not rng is nothing then
msgbox "Value from column H": " & rng.offset(0,6).Value
else
msgbox "ABC not found"
end if

--
Regards,
Tom Ogilvy




"Mr Struggler" wrote:

Hi

I have a working model now which uses named ranges, and I have written a
VBA
function which looks up a value in the first column which is my index
and
returns a required column intersection cell.

However, this did require a little jiggery pokery for the want of a
better
word to do this. Have I missed some fundamental function which would do
this
in VBA from a named range. Basically I use the range.Find method,and
have to
find the offset from the start of the range in order to get my row and
for
this I have to use R1C1 relative format and then add 1.

This works but it seems a little much to have to do to acheive this from
VBA, any help would be appreciated.

Thanks








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
What is the right approach? Epinn Excel Worksheet Functions 3 October 8th 06 12:22 PM
How to approach this? mevetts Excel Discussion (Misc queries) 1 January 10th 06 04:20 PM
New approach davegb Excel Programming 6 December 6th 05 04:31 PM
LOOKUPS - Creating LOOKUPs where two different values must BOTH be satisfied. Mr Wiffy Excel Worksheet Functions 2 May 16th 05 04:29 AM
How do I approach this? Grant Reid Excel Programming 5 May 25th 04 04:51 PM


All times are GMT +1. The time now is 03:21 PM.

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"