ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   formula through inputbox (https://www.excelbanter.com/excel-programming/439278-formula-through-inputbox.html)

Utkarsh

formula through inputbox
 
Instead of entering a formula like =IF(ISERROR(C1/D1),"",C1/D1), I
would like the user the enter the formula like c1/d1 through an
inputbox. The code below tries to do this but is not working - the
results looks like =IF(ISERROR(y),"",y)


Sub Macro1()

y = InputBox("enter formula")

ActiveCell.Formula = "=IF(ISERROR(y),"""",y)"
End Sub

Peter T

formula through inputbox
 
Two ways, uncomment the second commented line to try the second way

Sub test()
Dim sFmla As String
Dim y As Variant

y = InputBox("enter formula")
If VarType(y) < vbBoolean Then ' user cancelled

sFmla = Replace("=IF(ISERROR(#~#),"""",#~#)", "#~#", y)

' sFmla = "=IF(ISERROR(" & y & "),""""," & y & ")"

ActiveCell.Formula = sFmla
End If

End Sub

Regards,
Peter T

"Utkarsh" wrote in message
...
Instead of entering a formula like =IF(ISERROR(C1/D1),"",C1/D1), I
would like the user the enter the formula like c1/d1 through an
inputbox. The code below tries to do this but is not working - the
results looks like =IF(ISERROR(y),"",y)


Sub Macro1()

y = InputBox("enter formula")

ActiveCell.Formula = "=IF(ISERROR(y),"""",y)"
End Sub




OssieMac

formula through inputbox
 
If you use the Application.InputBox method (check it out in help; it is
different then InputBox Function) then you can set the Type to zero which
allows formula input.

ActiveCell = Application.InputBox(Prompt:="Enter formula", Type:=0)

With above you can enter =IF(ISERROR(C1/D1),"",C1/D1) directly into the
Application.InputBox


--
Regards,

OssieMac


"Utkarsh" wrote:

Instead of entering a formula like =IF(ISERROR(C1/D1),"",C1/D1), I
would like the user the enter the formula like c1/d1 through an
inputbox. The code below tries to do this but is not working - the
results looks like =IF(ISERROR(y),"",y)


Sub Macro1()

y = InputBox("enter formula")

ActiveCell.Formula = "=IF(ISERROR(y),"""",y)"
End Sub
.


Peter T

formula through inputbox
 
I think, or rather guess as it's not clear at all, the OP's objective is
simply to enter [say] "C1/D1" without quotes as the variable element of the
long formula which eventually needs to be applied to the cell's formula. If
so both the VBA and Excel Inputbox would work fine.

Regards,
Peter T

"OssieMac" wrote in message
...
If you use the Application.InputBox method (check it out in help; it is
different then InputBox Function) then you can set the Type to zero which
allows formula input.

ActiveCell = Application.InputBox(Prompt:="Enter formula", Type:=0)

With above you can enter =IF(ISERROR(C1/D1),"",C1/D1) directly into the
Application.InputBox


--
Regards,

OssieMac


"Utkarsh" wrote:

Instead of entering a formula like =IF(ISERROR(C1/D1),"",C1/D1), I
would like the user the enter the formula like c1/d1 through an
inputbox. The code below tries to do this but is not working - the
results looks like =IF(ISERROR(y),"",y)


Sub Macro1()

y = InputBox("enter formula")

ActiveCell.Formula = "=IF(ISERROR(y),"""",y)"
End Sub
.




OssieMac

formula through inputbox
 
Re-reading the question I think you are probably correct Peter.

In which case using Application.InputBox the Type should be 2 for a string
and then use one of your methods to create the formula final formula.

Dim y As String

y = Application.InputBox(Prompt:="Enter Formula", Type:=2)

ActiveCell.Formula = "=IF(ISERROR(" & y & "),""""," & y & ")"

--
Regards,

OssieMac



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

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