Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Is there a VB or VBA math function which will calculate the factors of
a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Excel already has the function GCD(num1, num2, num3, ...) which finds the greatest common divisor of multiple numbers. That should serve your purpose. Cheers, Jason Lepack wrote: Is there a VB or VBA math function which will calculate the factors of a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Garry,
Try the code below. HTH, Bernie MS Excel MVP Sub test() Dim myFactors As Variant Dim myNum As Long Dim i As Integer myNum = InputBox("What Number?") myFactors = FactorFunction(myNum) For i = LBound(myFactors) To UBound(myFactors) MsgBox myFactors(i) Next i End Sub Function FactorFunction(inVal As Long) As Variant Dim myValue As Long Dim myFA() As Long Dim myCount As Integer Dim i As Long myCount = 1 ReDim Preserve myFA(1 To myCount) For i = 2 To inVal / 2 If inVal Mod i = 0 Then ReDim Preserve myFA(1 To myCount) myFA(myCount) = i myCount = myCount + 1 End If Next i FactorFunction = myFA End Function wrote in message ps.com... Is there a VB or VBA math function which will calculate the factors of a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Lowest common denominator is usually 1 for any factors... Use Greatest
Common Divisor: =GCD(1,2,3,4,8,6,12) etc... Rob wrote: Is there a VB or VBA math function which will calculate the factors of a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Bernie,
Thanks for the code. I will try it. Other experts also pointed me to the GCD function which may/maynot work for my application but I thank one and all for the help. Garry Bernie Deitrick wrote: Garry, Try the code below. HTH, Bernie MS Excel MVP Sub test() Dim myFactors As Variant Dim myNum As Long Dim i As Integer myNum = InputBox("What Number?") myFactors = FactorFunction(myNum) For i = LBound(myFactors) To UBound(myFactors) MsgBox myFactors(i) Next i End Sub Function FactorFunction(inVal As Long) As Variant Dim myValue As Long Dim myFA() As Long Dim myCount As Integer Dim i As Long myCount = 1 ReDim Preserve myFA(1 To myCount) For i = 2 To inVal / 2 If inVal Mod i = 0 Then ReDim Preserve myFA(1 To myCount) myFA(myCount) = i myCount = myCount + 1 End If Next i FactorFunction = myFA End Function wrote in message ps.com... Is there a VB or VBA math function which will calculate the factors of a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
VBA or VB math function
Bernie,
Thanks for the code. I will try it. Other experts also pointed me to the GCD function which may/maynot work for my application but I thank one and all for the help. Garry Bernie Deitrick wrote: Garry, Try the code below. HTH, Bernie MS Excel MVP Sub test() Dim myFactors As Variant Dim myNum As Long Dim i As Integer myNum = InputBox("What Number?") myFactors = FactorFunction(myNum) For i = LBound(myFactors) To UBound(myFactors) MsgBox myFactors(i) Next i End Sub Function FactorFunction(inVal As Long) As Variant Dim myValue As Long Dim myFA() As Long Dim myCount As Integer Dim i As Long myCount = 1 ReDim Preserve myFA(1 To myCount) For i = 2 To inVal / 2 If inVal Mod i = 0 Then ReDim Preserve myFA(1 To myCount) myFA(myCount) = i myCount = myCount + 1 End If Next i FactorFunction = myFA End Function wrote in message ps.com... Is there a VB or VBA math function which will calculate the factors of a number? i.e. for 24 the factors could be 1,2,3,4,8,6,12 I need to find the lowest common denominator for a macro that I am writing. TIA Garry |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Math Function? | Excel Discussion (Misc queries) | |||
+ or - as text, not math function | Excel Worksheet Functions | |||
What is the math behind array function | Excel Discussion (Misc queries) | |||
Math Function | Excel Discussion (Misc queries) | |||
Need help with math Function | Excel Worksheet Functions |