Monday, March 12, 2018

Windev : Abscisse en lettres dans une feuille Excel

PROCEDURE test(X est un entier)
// Cette fonction renvoie l'abscisse en lettres dans une feuille Excel
// X est le numéro de colonne

// Remarque : Il s'agit de la conversion d'un nombre en base 26
//                     L'algorithme renvoie un résultat correct en 2 lettres maximum

// Exemples :
//             1  -> A
//             ...
//             26 -> Z
//             27 -> AA
//             ...
//             702 -> ZZ

// Avec 702 = 27 x 26 <-- nombre de possibilités avec les lettres en majuscule de l'alphabet

nQuotient est un entier
nReste      est un entier
sRes         est une chaîne

SI efe_IndX > 702 ALORS RENVOYER ""   // Valeur à capturer dans la fonction appelante pour éviter le plantage Excel -> Range()

nQuotient   = PartieEntière(X/26)
nReste        = modulo(X,26)

SI nReste = 0 ALORS
    nQuotient--   
    nReste = 26
FIN

SI nQuotient > 0 ALORS sRes = Caract(64+nQuotient)
sRes += Caract(64+nReste)

RENVOYER(sRes)

No comments:

Post a Comment