Why discussing if some answer are alreay fixed on this forum/internet.
Would it help if everybody could post every finished module with explaination what the module does.
In that way you get all fixed module in 1 post
I will start with first module for rounding numbers
This was found somewhere on the internet and it works.
********************************************************
Option Compare Database
Option Explicit
Public Function fctRoundUpDown( _
varNumber As Variant, varDelta As Variant) As Variant
'***********
'Name: RoundDelta (Function)
'Purpose: round varNumber to varDelta, up or down
'Inputs: varNumber = number to round
' varDelta = rounding precision
' +varDelta = rounds UP
' -varDelta = rounds DOWN
'Example: RoundUpDown(5.12,+0.25) = 5.25
' RoundUpDown(5.12,-0.25) = 5.00
'Output: varNumber rounded UP/DOWN
'***********
Dim varTemp As Variant
varTemp = CDec(varNumber / varDelta)
If Int(varTemp) = varTemp Then
fctRoundUpDown = varNumber
Else
fctRoundUpDown = Int( _
((varNumber + (2 * varDelta)) / varDelta) - 1) _
* varDelta
End If
End Function
Public Function RoundNear( _
varNumber As Variant, varDelta As Variant) As Variant
'***********
'Name: RoundNear (Function)
'Purpose: rounds varnumber to the nearest fraction equal
' varDelta
'Inputs: varNumber - number to round
' varDelta - the fraction used as measure of
' rounding
'Example: RoundNear(53,6) = 54
' RoundNear(1.16,0.25) = 1.25
' RoundNear(1.12,0.25) = 1.00
' RoundNear(1.125,0.25)= 1.25
'Output: varNumber rounded to nearest
' multiple of varDelta.
'***********
Dim varDec As Variant
Dim intX As Integer
Dim varX As Variant
varX = varNumber / varDelta
intX = Int(varX)
varDec = CDec(varX) - intX
If varDec >= 0.5 Then
RoundNear = varDelta * (intX + 1)
Else
RoundNear = varDelta * intX
End If
End Function
********************************************************
Would it help if everybody could post every finished module with explaination what the module does.
In that way you get all fixed module in 1 post
I will start with first module for rounding numbers
This was found somewhere on the internet and it works.
********************************************************
Option Compare Database
Option Explicit
Public Function fctRoundUpDown( _
varNumber As Variant, varDelta As Variant) As Variant
'***********
'Name: RoundDelta (Function)
'Purpose: round varNumber to varDelta, up or down
'Inputs: varNumber = number to round
' varDelta = rounding precision
' +varDelta = rounds UP
' -varDelta = rounds DOWN
'Example: RoundUpDown(5.12,+0.25) = 5.25
' RoundUpDown(5.12,-0.25) = 5.00
'Output: varNumber rounded UP/DOWN
'***********
Dim varTemp As Variant
varTemp = CDec(varNumber / varDelta)
If Int(varTemp) = varTemp Then
fctRoundUpDown = varNumber
Else
fctRoundUpDown = Int( _
((varNumber + (2 * varDelta)) / varDelta) - 1) _
* varDelta
End If
End Function
Public Function RoundNear( _
varNumber As Variant, varDelta As Variant) As Variant
'***********
'Name: RoundNear (Function)
'Purpose: rounds varnumber to the nearest fraction equal
' varDelta
'Inputs: varNumber - number to round
' varDelta - the fraction used as measure of
' rounding
'Example: RoundNear(53,6) = 54
' RoundNear(1.16,0.25) = 1.25
' RoundNear(1.12,0.25) = 1.00
' RoundNear(1.125,0.25)= 1.25
'Output: varNumber rounded to nearest
' multiple of varDelta.
'***********
Dim varDec As Variant
Dim intX As Integer
Dim varX As Variant
varX = varNumber / varDelta
intX = Int(varX)
varDec = CDec(varX) - intX
If varDec >= 0.5 Then
RoundNear = varDelta * (intX + 1)
Else
RoundNear = varDelta * intX
End If
End Function
********************************************************