Function Dec2Base(DecimalValue As Variant, Base As Long) As String
Const PossibleDigits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
DecimalValue = CDec(DecimalValue)
Do Until DecimalValue = 0
Dec2Base = Mid(PossibleDigits, CDec(DecimalValue) - Base * _
Int(DecimalValue / Base) + 1, 1) & Dec2Base
DecimalValue = Int(CDec(DecimalValue) / Base)
Loop
End Function
Function Base2Dec(BaseDigits As String, BaseNumber As Long) As Variant
Dim X As Long, Z As Long, DigitVal As Variant, Power As Variant
Const PossibleDigits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
If Not UCase(BaseDigits) Like "*[!" & Left(PossibleDigits, BaseNumber) & "]*" Then
For X = 0 To Len(BaseDigits) - 1
DigitVal = UCase$(Mid(BaseDigits, Len(BaseDigits) - X, 1))
DigitVal = InStr(PossibleDigits, DigitVal) - 1
Power = 1
For Z = 1 To X
Power = CDec(Power) * BaseNumber
Next
Base2Dec = Base2Dec + DigitVal * Power
Next
Else
Err.Raise 9999, , "Bad base digit specified"
End If
End Function