ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Array Formula in VBA (https://www.excelbanter.com/excel-programming/408953-array-formula-vba.html)

Bigfoot17

Array Formula in VBA
 
I have been using a array formula like this to 'count' the number of cells
that =1 in one column and 25 in the second column. The file the cell is
checking is in another file.
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[fiel2.xls]Sheet3'!$N$2:$N$180050))}

Currently when the file opens it asks if I want to update and then it checks
file2 and enters the data. Simple enough. But now I am writing code to work
at the press of a macro button, and I am not making progress.

Workbooks("file1.xls").Sheets("Sheet1").Activate
Range("B6").FormulaArray =
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3!$N$2:$N$180050))}

Any guidance is appreciated.


Rick Rothstein \(MVP - VB\)[_1648_]

Array Formula in VBA
 
Perhaps setting Application.DisplayAlerts to False before running your code
and back to True afterwards will handle your problem. If it works for this
situation, setting DisplayAlerts to False will mean any dialog boxes that
would be have been displayed will not display and the default button will be
selected automatically (well, for your case... this works the opposite for
SaveAs).

Rick


"Bigfoot17" wrote in message
...
I have been using a array formula like this to 'count' the number of cells
that =1 in one column and 25 in the second column. The file the cell is
checking is in another file.
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[fiel2.xls]Sheet3'!$N$2:$N$180050))}

Currently when the file opens it asks if I want to update and then it
checks
file2 and enters the data. Simple enough. But now I am writing code to
work
at the press of a macro button, and I am not making progress.

Workbooks("file1.xls").Sheets("Sheet1").Activate
Range("B6").FormulaArray =
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3!$N$2:$N$180050))}

Any guidance is appreciated.



Net_prof[_2_]

Array Formula in VBA
 
Just think thru your steps logically:

1. Open the 2nd file - you can't activate the 2nd file unless it's already
open.
2. Initialize the array
3. Loop thru each cell in 2nd file, updating the array if your condition is
met.
4. Close the 2nd file.
5. Write the results to the cell(s).

Feel free to contact me direct if you have any additional questions.




"Bigfoot17" wrote:

I have been using a array formula like this to 'count' the number of cells
that =1 in one column and 25 in the second column. The file the cell is
checking is in another file.
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[fiel2.xls]Sheet3'!$N$2:$N$180050))}

Currently when the file opens it asks if I want to update and then it checks
file2 and enters the data. Simple enough. But now I am writing code to work
at the press of a macro button, and I am not making progress.

Workbooks("file1.xls").Sheets("Sheet1").Activate
Range("B6").FormulaArray =
{=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3!$N$2:$N$180050))}

Any guidance is appreciated.


Bigfoot17

Array Formula in VBA
 
I am afraid I was not clear so I will take another stab at it.

I currently have a array formula in file1.xls on sheet1 in cell B6
={=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3'!$N$2:$N$180050))}

This works fine, but now I need to get the same data into the same cell
(from file2) with VBA and cannot get the proper syntax.

kounoike[_2_]

Array Formula in VBA
 
Try this one. Assuming file1.xls and file2.xls are in the same folder.

Range("B6").FormulaArray =
"=SUM(([file2.xls]Sheet3!$H$2:$H$1800=1)*([file2.xls]Sheet3!$N$2:$N$180050))"

keiji

"Bigfoot17" wrote in message
...
I am afraid I was not clear so I will take another stab at it.

I currently have a array formula in file1.xls on sheet1 in cell B6:
={=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3'!$N$2:$N$180050))}

This works fine, but now I need to get the same data into the same cell
(from file2) with VBA and cannot get the proper syntax.



Bigfoot17

Array Formula in VBA
 
Give this person a donut! Thanks it got me where i needed to be. My final
line was:
Range("B6").FormulaArray =
"=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]sheet3'!$K$2:$K$180025))"
I wasn't far off in figuring it out in my first post, but I was missing a
single quote and threw everything off. Thanks.

"kounoike" wrote:

Try this one. Assuming file1.xls and file2.xls are in the same folder.

Range("B6").FormulaArray =
"=SUM(([file2.xls]Sheet3!$H$2:$H$1800=1)*([file2.xls]Sheet3!$N$2:$N$180050))"

keiji

"Bigfoot17" wrote in message
...
I am afraid I was not clear so I will take another stab at it.

I currently have a array formula in file1.xls on sheet1 in cell B6:
={=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3'!$N$2:$N$180050))}

This works fine, but now I need to get the same data into the same cell
(from file2) with VBA and cannot get the proper syntax.




kounoike[_2_]

Array Formula in VBA
 
you're welcome. in this case i think it would work without single quote, but
adding single quote is better way.

keiji

"Bigfoot17" wrote in message
...
Give this person a donut! Thanks it got me where i needed to be. My final
line was:
Range("B6").FormulaArray =
"=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]sheet3'!$K$2:$K$180025))"
I wasn't far off in figuring it out in my first post, but I was missing a
single quote and threw everything off. Thanks.

"kounoike" wrote:

Try this one. Assuming file1.xls and file2.xls are in the same folder.

Range("B6").FormulaArray =
"=SUM(([file2.xls]Sheet3!$H$2:$H$1800=1)*([file2.xls]Sheet3!$N$2:$N$180050))"

keiji

"Bigfoot17" wrote in message
...
I am afraid I was not clear so I will take another stab at it.

I currently have a array formula in file1.xls on sheet1 in cell B6:
={=SUM(('[file2.xls]Sheet3'!$H$2:$H$1800=1)*('[file2.xls]Sheet3'!$N$2:$N$180050))}

This works fine, but now I need to get the same data into the same cell
(from file2) with VBA and cannot get the proper syntax.






All times are GMT +1. The time now is 11:53 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com