![]() |
Problems creating my own ifmacro function
Hi, I made a cutom function but it's not working (the #Value error is shown),
i attached the code so you can see it: Public Function ifmacro(m0 As String, m1 As String, m2 As String, m3 As String) As String If m0 = m1 Then DoCmd.RunMacro m2 Else DoCmd.RunMacro m3 End If End Function as you can see if I put in cell A7 the following text "=ifmacro(A1;A2;"Macro1";"Macro2")" and the values of A1=3 and A2=3 then A1=A2 so Macro1 should be executed, but this not happend, the #value error appears instead. questions: 1) Why my function is not working??? 2)How to change The m0 and m1 variables to just one (like the if function "=if(A1=A2;....................................... .)")????? TIA. |
Problems creating my own ifmacro function
There is no doCmd in Excel. This is an Access VBA command.
Perhaps replace with Application.Run m2 although this isn't allowed in a UDF used in a worksheet. For you second question. Public Function ifmacro(bval As Boolean, m2 As String, m3 As String) As Boolean If bval Then macro1 Else macro2 End If ifmacro = bval End Function -- Regards, Tom Ogilvy "filo666" wrote in message ... Hi, I made a cutom function but it's not working (the #Value error is shown), i attached the code so you can see it: Public Function ifmacro(m0 As String, m1 As String, m2 As String, m3 As String) As String If m0 = m1 Then DoCmd.RunMacro m2 Else DoCmd.RunMacro m3 End If End Function as you can see if I put in cell A7 the following text "=ifmacro(A1;A2;"Macro1";"Macro2")" and the values of A1=3 and A2=3 then A1=A2 so Macro1 should be executed, but this not happend, the #value error appears instead. questions: 1) Why my function is not working??? 2)How to change The m0 and m1 variables to just one (like the if function "=if(A1=A2;....................................... .)")????? TIA. |
Problems creating my own ifmacro function
Thanks tom; There is some way to do what I want????, if not, thanks anyway,
you information was helpfull. "Tom Ogilvy" wrote: There is no doCmd in Excel. This is an Access VBA command. Perhaps replace with Application.Run m2 although this isn't allowed in a UDF used in a worksheet. For you second question. Public Function ifmacro(bval As Boolean, m2 As String, m3 As String) As Boolean If bval Then macro1 Else macro2 End If ifmacro = bval End Function -- Regards, Tom Ogilvy "filo666" wrote in message ... Hi, I made a cutom function but it's not working (the #Value error is shown), i attached the code so you can see it: Public Function ifmacro(m0 As String, m1 As String, m2 As String, m3 As String) As String If m0 = m1 Then DoCmd.RunMacro m2 Else DoCmd.RunMacro m3 End If End Function as you can see if I put in cell A7 the following text "=ifmacro(A1;A2;"Macro1";"Macro2")" and the values of A1=3 and A2=3 then A1=A2 so Macro1 should be executed, but this not happend, the #value error appears instead. questions: 1) Why my function is not working??? 2)How to change The m0 and m1 variables to just one (like the if function "=if(A1=A2;....................................... .)")????? TIA. |
Problems creating my own ifmacro function
Use a case statement with the calls to the macros hardcoded.
-- Regards, Tom Ogilvy "filo666" wrote in message ... Thanks tom; There is some way to do what I want????, if not, thanks anyway, you information was helpfull. "Tom Ogilvy" wrote: There is no doCmd in Excel. This is an Access VBA command. Perhaps replace with Application.Run m2 although this isn't allowed in a UDF used in a worksheet. For you second question. Public Function ifmacro(bval As Boolean, m2 As String, m3 As String) As Boolean If bval Then macro1 Else macro2 End If ifmacro = bval End Function -- Regards, Tom Ogilvy "filo666" wrote in message ... Hi, I made a cutom function but it's not working (the #Value error is shown), i attached the code so you can see it: Public Function ifmacro(m0 As String, m1 As String, m2 As String, m3 As String) As String If m0 = m1 Then DoCmd.RunMacro m2 Else DoCmd.RunMacro m3 End If End Function as you can see if I put in cell A7 the following text "=ifmacro(A1;A2;"Macro1";"Macro2")" and the values of A1=3 and A2=3 then A1=A2 so Macro1 should be executed, but this not happend, the #value error appears instead. questions: 1) Why my function is not working??? 2)How to change The m0 and m1 variables to just one (like the if function "=if(A1=A2;....................................... .)")????? TIA. |
All times are GMT +1. The time now is 01:46 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com