Solved

Excel VBA Using a function in a cell to pull in data from different sheets

Posted on 2013-11-19
4
356 Views
Last Modified: 2013-11-24
Hi

I have several workbooks with data in a similar format.
I know that you can call a VBA function in a cell.
Does anyone have an example where this technique is used to pull
data from several sheets into one?
0
Comment
Question by:murbro
4 Comments
 
LVL 31

Expert Comment

by:Rob Henson
ID: 39660741
You need to be more specific about what you are trying to achieve.

Sample data is always good but must be non-confidential as it is viewable to public.

Thanks
Rob H
0
 
LVL 8

Assisted Solution

by:stevepcguy
stevepcguy earned 250 total points
ID: 39660743
I'm not great at pounding out code, but I can copy existing code and tweak it to suit my situation.
Here is an example of copying from another worksheet. It's not what you asked for, but simplifies the process:
http://www.ehow.com/how_7361777_copy-paste-another-using-vba.html

Once you wrap your head around that, check out how to copy from another workbook:
http://www.ozgrid.com/forum/showthread.php?t=69320
0
 
LVL 12

Accepted Solution

by:
Harry Lee earned 250 total points
ID: 39667294
To be able to use VBA in spreadsheet cells, you have to create the function in VBA so that it will work like other formulas.

Open up VBA Editor but pressing Alt-F11. Open Project Explorer by pressing Ctrl-R.

In the Project Explorer, look for the current file you are working on. Right click and choose Insert -> Module.

In the module, type in some like the bellow.

Function GetQuarterEnd(Rngdate As Range) As Date
Dim myDateVariable As Date
Dim Year1, Month1, Day1, ResultMth, ResultDate As Integer

Year1 = Year(Rngdate.Value)
Month1 = Month(Rngdate.Value)
Day1 = Day(Rngdate.Value)

Select Case Month1
    Case 1 To 3
        ResultMth = 3
    Case 4 To 6
        ResultMth = 6
    Case 7 To 9
        ResultMth = 9
    Case 10 To 12
        ResultMth = 12
End Select

Select Case ResultMth
    Case 3, 12
        ResultDate = 31
    Case 6, 9
        ResultDate = 30
End Select
myDateVariable = DateSerial(Year1, ResultMth, ResultDate)
GetQuarterEnd = myDateVariable
End Function

Open in new window


After that, you can start using formula like =GetQuarterEnd(A1) in spreadsheet cells.

In you question, you said you want to put data from multiple sheet into one. That doesn't sound like it has anything to do with calling VBA function from spreadsheet cells.
0
 

Author Closing Comment

by:murbro
ID: 39672314
Thanks
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Sparklines have been introduced with Excel 2010 and are a useful tool for creating small in-cell charts, used for example in dashboards. Excel 2010 offers three different types of Sparklines: Line, Column and Win/Loss. What it does not offer is a…
Drop Down List with Unique/Distinct Values (enhancing the Combo-Box with a few steps and a little code) David miller (dlmille) Intro Have you ever created a data validation list from a database field or spreadsheet column (e.g., Zip Codes or Co…
Viewers will learn the basics of slicers and timelines for both PivotTables and standard Excel tables in Excel 2013.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now