Write this formula in VBA - excel

I would like some help, to find out how I would be able to write the below formula in VBA;
=IF((COLUMNS($G13:G13)<=$F13),INDEX(DateHeadings,,SMALL(IF(TableBodyRow="E",COLUMN(DateHeadings)-4+1),COLUMNS($G13:G13))),"")
I can use the excel formula as is, but unfortunately when the named range "TableBodyRow" is used it creates an absolute reference when I need a relative one. Unless there is a solution to change that without having to go back into "Name Manager".
Thank you

If you want the dumb answer here it is. Copy your formulas to your clipboard then run record macro. Select a cell and paste the formula from the clipboard into it. End record macro, and now you have your answer.

Related

formula from the path to another file from the cell

I have a lot of formulas referencing other files and it's bothering me to manually change the cell on the file path cell. He tries to connect cells, but he gives me pure text without a formula. I remember that on Excel 2010 it worked, but for 2013 I have a problem. Below is an example
Thanks
try formula "address". It helps to construct path to the needed cell within other workbook.

Error when entering table_array with spaces in the name Excel Formula

first my apologies for being a noob with regard to Excel Formulas - I did search and did not find an answer.
I have a spreadsheet that I am trying to modify. I got two spreadsheets from a client, who gave me a working copy and one that he had modified. There is a #REF error in the modified version. If I look at the working copy the formula looks like this.
=VLOOKUP($C$1,'Client Rates'!$A$2:J$228,5,FALSE)
As you can see it has quote marks in the table_array parameter because it does have a space in it. However I cannot enter it this way as it throws an error every time I try. Error is something like this - 'There is a problem with this formula. Not trying to type a formula? ... '
How can I enter the work sheet as a parameter with spaces in the name into the formula?
Did you try F2 to edit formula directly. Then highlight section of formula you wish to change then select the actual data you want evaluated by the formula?
Excel will create the correct string for the sheet and area reference for you.
The problem is you are trying to copy and paste directly from on workbook to another. Copying ctrl-c and pasting ctrl-v from one workbook to another may not have the desired effect. If you copy first to notepad or some other text editor and then paste from that text editor all works fine.

Generating a powerpoint presentation with VBA and Excel

I have a template presentation on powerpoint.
I would like to replace automatically generic placeholders with the value I input in an linked excel worksheet.
I started looking at VBA at the begining of the week, I am not really yet familiar with the syntax, but I am optimistic I will find a way to understand it.
I have put "[ ]" everywhere I want a value input:
the excel sheet present itself like this:
I would like to have some pointers (first, to know if it is indeed possible in powerpoint) to get me started in the right direction.
Does it need to be a PublicSub()?
Am I writing the macro on Powerpoint or in Excel?
Can I use a fonction similar to LookupV to get the values to replace the placeholders?
I would imagine something like :
(side question : can I use regex inside of VBA?)
for each "\[.\]" '(or characterString.startsWith("[")
lookup characterString in excel, return column 3
end each
Would this be possible?
Thank you in advance, I really appreciate the help.
Found an approximate solution, but simpler than code writing.
Open Excel,
fill the values, and copy them onto the powerpoint presentation : use the special paste option between the cell (or cells/cell range) you want.
Choose the "paste the link" option together with object worksheet Excel, select Ok.
Both files will be linked. You can change the values in Excel, and they will change also in powerpoint. The formating is done on excel.
In order to update all the values in the powerpoint after changing them on excel, powerpoint needs to be re-run, and at the restart of the application, accept the updating box prompt.
I find this simpler than the other solutions.

Referencing a workbook through a named range in Excel

I have 3 workbooks - Parent1.xlsx and Child.xlsx
Parent1.xlsx has data that will be referenced by Child.xlsx through vlookup.
The vlookup formula is
=VLOOKUP(1,[Parent1.xlsx]Sheet1!$A$1:$B$7,2,FALSE)
That works fine.
Now I have to make a copy of Parent1.xlsx to Parent2.xlsx.
In order for Child.xlsx to work I have to change the formula to
=VLOOKUP(1,[Parent2.xlsx]Sheet1!$A$1:$B$7,2,FALSE)
That is ok if its just for 1 cell, but I need to do it for many cells.
To fix this, I plan to used a named range for the file name. So in Sheet2 of Child.xlsx, I have a named range "parent" that has the name of the file - Parent2.xlsx.
I can't seem to get that to work.
If the value for the named range "parent" is
'[Parent2.xlsx]Sheet1'
then I'm trying to get
=VLOOKUP(1,parent!$A$1:$B$7,2,FALSE)
to work.
Is this even possible? Other than copy pasted everything and using VBA, is there another possibility?
Thanks
If you just need to change all the external references to the file Parent2, rather than Parent1, choose the Data tab, Edit Links and click Change Source.
Try:
"=VLOOKUP(1," & ActiveWorkbook.Names("parent").Value & "!$A$1:$B$7,2,FALSE)"
Edit: just realized this is the VBA solution. This won't work in a cell formula.

VBA: Finding a value, copying row, pasting row somewhere else, Finding the next value

So here is what I want to do in VBA:
Find the value in E10, copy the row it is in, paste the row somewhere else (doesn't matter as long as I can find it) then finding the next row with the value E10 and doing the same thing, etc, until I reach the end of the spreadsheet
I'm really new to VBA and macros in general, so any help would be appreciated!
Generally speaking you'll find that asking questions without explaining "what have you tried" tends to be frowned upon in these parts.
I suggest that you take a look at this somewhat similar question that I answered just earlier today:
Copy & Paste row of data in Excel 2003 to different sheet by Email search
The principal differences between that one and your need are:
Instead of an InputBox, you'll use the value in E10 to run the .Find method; and
You need to create a loop. You still run the .Find method as shown in my example but you do it in a loop until you've looped through every instance of the value in E10 in the sheet. (Get the address of the first range that you find, and keep running the .Find method until you get back to that address.) Look up the While statement and the For statement in VBA help for examples on how to create a loop.
To get the value of an individual cell one way is just to create a reference to the cell range, then query the .Value property. For example a fully qualified reference could be:
Thisworkbook.Worksheets("Sheet1").Range("E10").value
There are other syntaxes which will yield the same result, but you can learn about those in time. Recording your actions using the Macro Recorder is a good way to learn about properties and methods. The problem is that in yet another part of the Excel 2010 interface that I detest, Microsoft has decided to hide the thing. To get to the Macro editor, go to File -> Options -> Customise Ribbon and turn on the Developer tab.
Give all of that a try and if you get stuck with something specific, post again with the details.

Resources