Bonjour,
Ce sujet étant atemporel (ou presque!), voici les 3 formules que j'ai concocté, sans usage de VBA...
1e formule:
Si la colonne n'excède pas la 26e (colonne Z), on peut écrire:
=INDEX({"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z"};MIN(COLONNE();26))
La syntaxe est surtout un bon prétexte à l'usage d'une constante matricielle dans une formule.
Explication:
La fonction COLONNE() retourne l'indice de la colonne de la cellule. La fonction MIN(COLONN();26) limite à 26 la valeur de l'indice retourné. La fonction INDEX() va permettre de ressortir de la matrice des lettres de "A" à "Z" la lettre à la position indiquée par le numéro de colonne retourné (limité à la 26e). Pour avoir plus de colonne, il suffirait d'agrandir la matrice avec la suite "AA";"AB";"AC"... et d'augmenter la limitation du numéro de colonne relevé à la taille de la matrice.
2e formule, tout à fait générique:
=STXT(ADRESSE(LIGNE();COLONNE();1;1);2;TROUVE("$";ADRESSE(LIGNE();COLONNE();1;1);2)-2)
Explication:
La fonction LIGNE() retourne l'indice de la ligne de la cellule. Avec LIGNE() et COLONNE() en argument de la fonction ADRESSE(), on récupère l'adresse absolue de la cellule au format $A$1. Il suffit d'en extraire les lettres, entre deux "$" et le tour est joué! Pour ce faire, la fonction TROUVE() retourne la position du second caractère "$" recherché dans l'adresse retournée afin d'en déduire la taille de la chaine à récupérer avec la fonction STXT() (en décalant de 1 le résultat de TROUVE() pour prendre la chaine juste avant, et encore de 1 pour ne pas prendre en compte le premier caractère "$" de la chaine, d'où le -2 dans la formule).
3e formule, tout autant générique, encore plus synthétique:
=STXT(ADRESSE(LIGNE();COLONNE();1;1);2;ENT(LOG(COLONNE();27)+1))
Explication:
Cette formule est comme la précédente, mis à part que je calcule la longueur de chaine des lettres à récupérer à partir du 2e caractère (après le premier "$"), en calculant le nombre de "digits" en base 27 (26 lettres de l'alphabet + 1) par la partie entière (ENT()) du logarithme en base 27 (LOG()), augmentée de 1. En effet, en colonne AA, soit la 27e colonne, LOG(27;27)=1. Donc ENT(1+1)=2. Tandisqu'à la colonne 26 (lettre Z), LOG(26;27)<1 donc ENT(LOG(26;27)=0, et ENT(0+1)=1.
Et voilà ! ;^)