Change sheet name inside formula by changing cell value - vba

I have this formula:
=COUNTIF('5-5-2014'!H:H;"NEW")
and I have cell K9 have a value of "5-5-2014".
I want to modify this formula so that I could change sheet name inside formula by changing cell K9 Value. So I want something like this:
=COUNTIF('K9'!H:H;"NEW")
I know this formula is totally wrong! Is there any way doing that?!

=COUNTIF(INDIRECT("'"&K9&"'!H:H"),"NEW")
Where K9 contains the sheet name

Related

Excel VBA - How To Retain Cell Value Even After The Reference Is Removed

How do you retain the value of a cell, for example cell B1 where B1 = A1, after the value of reference cell, A1 is removed?
No, I'm not looking for Copy & Paste Values (V). Is there a VBA code to do this?
As excel clear every variable values at the end of every subroutines. I would like to keep this value for reference all the time.
You set the value to the value, which will remove the references and formulas.
Range("B1").Value = Range("B1").Value

Copy a number starting with 0 in vba and paste is as such

say cell A1, A2, A3 contains value "00V", cell An contains value "029"
I'm doing a comparison for consecutive cells in column A like:
If A1 not equal to A2 then ill copy the cell value of A2 and paste it into a new worksheet in Column A first consecutively.
When I compare 00V and 029 (i.e. both are unequal) ill copy 029 and paste into new sheet
But "029" gets pasted as "29"
How do I fix this in Excel vba?
You could use Format(val, "000") where val is the value of whatever you're copying.
Or you could use rng.NumberFormat = "000" where rng is the destination range of where you're copying the values to.
Convert the target column format to text and then use paste special values. You'll be able to preserve the zeros.
The easiest way is to add a apostrophe (') in front of the values. When copied, the 0 will be maintained.

Vba: vlookup for entire column

I have column B with cost centre codes and column D with department. i need to do a vlookup to fill in the department name of the relevant cost centre code.
The current code is like this:
Dim MyStringVar1= Application.Vlookup(Range("B7"),_
Worksheets("VLOOKUP Table").Range("A2:B1000"),2,True)
However, i dont just want to do vlookup for D7 only but rather the entire column. My range is not fixed(there may be 100 or 200rows in Column B,depending on the number of projects.)
How do I apply the formula for the entire column? Instead of D7 only
let's say you want to add formula =VLOOKUP(B2,'VLOOKUP Table'!A$2:B$1000,2,TRUE)
to range D3:D10, where 'B2' will increment after every row, then the code would be :
Range("D3:D10").Formula= "=VLOOKUP(B2,'VLOOKUP Table'!A$2:B$1000,2,TRUE)"
Dim This As Worksheet
Set This = ThisWorkbook.Sheets(1)
This.Activate
This.Range("D7", Range("A2").End(xlDown).Offset(0, 3)).Formula = "=VLOOKUP(B2,[INSERT SHEET]!$A:$D,2,FALSE)"
If the data is in sheet2, you just insert sheet2 in the [INSERT SHEET]. It doesn't matter if the name is sheet2 or named something else, just call it sheet2
You could use relative references in an R1C1 formula, then just paste it to your destination range, you'd need to find the destination range first, perhaps using something like .end(xldown).row
See this for reference on the general idea:
http://macromatician.blogspot.co.uk/2013/02/how-to-add-formula-to-worksheet-range.html

EXCEL VBA Countifs with dynamic range based on cell value [duplicate]

I'd like to know how to pull cell references from the value of another cell and insert them into a formula.
For a simple example:
In cell A1 I have this: COUNT(B4:H4)
Instead of choosing the range when I set up the formula, I'd like this range to be dynamic, based on the value in other cells.
So, I want to type in cell references: in cell B4, I'd type in C5, and in H4 I'd type in C8. How can I set up my formula to look inside cells B4 and H4, but then return the range that is defined by the values in these cells (C5:C8 in this case...)
So in the end, cell A1 would return the count of C5:C8
I hope that makes sense. It seems like something pretty simple but I can't seem to find info on it.
Use INDIRECT()
=SUM(INDIRECT(<start cell here> & ":" & <end cell here>))

Call a cell by using a value in another cell

I am trying to call a simple cell (Eg: =a1) in Excel. However this "a1" is available in another cell, let's say in cell 'e1'.
In another way, what I mean is e1 cell has the value "a1" in it and for that reason alone I want to call a1. Finally will in turn populate the value that is actually in a1.
I need to do this is because the cell no. that needs to be populated is retrieved from a formula in e1. That is how the cell a1 comes into the picture.
Using the function: =Indirect([cell]) will give you the value in the [cell]. For example, if cell Z1 has the function =Indirect(E1), and E1 has the value A1, will give you the value of A1 in Z1. Then if E1 changes to, say, A2, then cell Z1 will contain the value from A2.