ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA or VB math function (https://www.excelbanter.com/excel-programming/381682-vba-vbulletin-math-function.html)

[email protected]

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


Jason Lepack

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



Bernie Deitrick

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




okrob

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



[email protected]

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



[email protected]

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




All times are GMT +1. The time now is 04:14 AM.

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