?Base10ToBase26(Base26ToBase10("AAAA")+1) FUNCTION Base10ToBase26 LPARA tnStartNumber LOCAL lnNumerator, lnMaxDigits, lcResult, lnDigitValue, lnNumerator, lnNumerator = tnStartNumber lnMaxDigits = MAX_DIGITS lcResult = "" IF tnStartNumber > (26^lnMaxDigits) RETURN REPLICATE("A",lnMaxDigits) ENDIF FOR i = (lnMaxDigits - 1) TO 0 STEP -1 lnDigitValue = INT(lnNumerator/(26^i)) lcResult = lcResult + CHR(lnDigitValue + 65) lnNumerator = lnNumerator - (lnDigitValue * (26^i)) ENDFOR RETURN lcResult ENDFUNC FUNCTION Base26ToBase10 LPARA tcStartCode LOCAL lcStartCode, lnComplementi, lcDigit, lnDigitValue, lnCorrectedDigitValue, lnResult lcStartCode = tcStartCode lnResult = 0 FOR i = LEN(lcStartCode) TO 1 STEP -1 lnComplementi = LEN(lcStartCode) - i lcDigit = SUBSTR(lcStartCode, i, 1) lnDigitValue = ASC(lcDigit) - 65 lnCorrectedDigitValue = lnDigitValue * 26^lnComplementi lnResult = lnResult + lnCorrectedDigitValue ENDFOR RETURN lnResultThanks to everybody for your input and ideas.