Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Worksheet Functions / November 2006

Tip: Looking for answers? Try searching our database.

Create formula in VBA

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Heine - 06 Nov 2006 12:35 GMT
Hello

Sub makeformulae()
Dim frng As Range
Const sFormula As String = _
"=if(a9="""","""",if(isna(vlookup(a9,råb1,3,false))," & _
   """"",(vlookup(a9,råb1,3,false))))"
   Sheets("Bogholderi").Select
   Set frng = Range("O9:O" & Cells(Rows.Count, "O").End(xlUp).Row)
   With frng
       .Formula = sFormula
       .Value = .Value
   End With
End Sub

Does anybody know how I make this formula dynamic to go with the range
- so that the a9-lookup is returned in o9 and the a10-lookup is
returned in o10 etc. Any thoughts?

Thanks in advance.

/Heine
Dave Peterson - 06 Nov 2006 13:11 GMT
What does it do now?

Try commenting the ".value = .value" line and look at the formula.

And a followup question...

You're using column O to determine the last cell to populate in column O.  

Did you actually want that?

If you wanted to use column A:

Set frng = Range("O9:O" & Cells(Rows.Count, "a").End(xlUp).Row)

> Hello
>
[quoted text clipped - 18 lines]
>
> /Heine

Signature

Dave Peterson

Heine - 06 Nov 2006 13:49 GMT
Hi Dave,

it performs the formula the right way now. I just forgot to name a
range. My mistake. Regarding the column O and A you are probably right.
I changed it to A. However it seems to work no matter what letter I
put.

One thing I don´t understand though: What exactly in the code makes it
dynamic - that is the lookup in a10 returns to O10 and a11 to O11 etc -
because I only put a9 to O9 and nothing else.

/Heine
> What does it do now?
>
[quoted text clipped - 32 lines]
> >
> > /Heine
Bob Phillips - 06 Nov 2006 14:24 GMT
It's a feature of Excel. When you enter a formula in a contiguous range,
Excel adjusts each instance relative to its position.

Signature

HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

Hi Dave,

it performs the formula the right way now. I just forgot to name a
range. My mistake. Regarding the column O and A you are probably right.
I changed it to A. However it seems to work no matter what letter I
put.

One thing I don´t understand though: What exactly in the code makes it
dynamic - that is the lookup in a10 returns to O10 and a11 to O11 etc -
because I only put a9 to O9 and nothing else.

/Heine
Dave Peterson wrote:
> What does it do now?
>
[quoted text clipped - 34 lines]
> >
> > /Heine
Dave Peterson - 06 Nov 2006 18:03 GMT
Just to add to Bob's response...

Try this in a test worksheet.

Select B1:B20 (about)
With B1 the activecell, type this:
=A1

Now look at the formulas in the other cells.  VBA does the same thing.

> Hi Dave,
>
[quoted text clipped - 48 lines]
> >
> > Dave Peterson

Signature

Dave Peterson

Dave Peterson - 06 Nov 2006 18:04 GMT
I forgot an important step:

Just to add to Bob's response...

Try this in a test worksheet.

Select B1:B20 (about)
With B1 the activecell, type this:
=A1
And hit ctrl-enter instead of enter.  <--- Added!

Now look at the formulas in the other cells.  VBA does the same thing.

> Hi Dave,
>
[quoted text clipped - 48 lines]
> >
> > Dave Peterson

Signature

Dave Peterson

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.