Conversion NumeroColonne vers LettreColonne sur 3 caractères (> à 702 col)

Bonjour,

Pour convertir le numéro de la dernière colonne d'un tableau en lettre(s), j'utilise le code ci dessous, récupéré et adapté du Forum (merci le Forum ! Et particulièrement Bouden).

Après essais, je m'aperçois que ce code est limité à 702 colonnes soit en lettres ZZ, mais renvoie une info erronée à partir de 703 (en lettres : AAA). Ce qui est dommage quand on sait que la limite d'Excel est de 16 384 colonnes (en lettres : XFD).

Question : Etant débutant en VBA, quelqu'un peut-il m'aider à ajouter une boucle pour la 3ème lettre (A partir de la 703ème colonne) ?

Je vous remercie par avance. Cordialement.

PS : Je n'arrive pas à faire fonctionner la fonction "colLetter" dans VBA, alors qu'elle marche très bien directement dans une cellule Excel. Mais j'ai besoin du résultat dans mon code VBA, sans passer par une cellule Excel.

image

Bonjour Catroun,

Pas besoin de boucle, cela s'écrit en une ligne de code.

Sub Colonne()
'Changer seulement la deuxième valeur numérique. ici 16384 est la dernière colonne. Selon version d'Excel
Kol = Replace(Cells(1, 16384).Address(RowAbsolute, ColumnAbsolute), "1", "")
End Sub

Hello,

Aller une autre contribution qui fait la même chose (qui n'est pas de moi) mais pour l'explication avec un exemple :

- Cells(1, 703).Address => $AAA$1
- Split permet de récupérer une liste des valeurs pour chaque séparateur "$" et on prend ensuite la première valeur de cette liste

Function LetCol(NoCol)
    LetCol = Split(Cells(1, NoCol).Address, "$")(1)
End Function

@+

Merci X Cellus,

Merci BAROUTE78

C'est parfait ! J'ai testé et retenu la solution de X Cellus pour au moins deux raisons :

- Simplicité du code en une seule ligne. Chapeau l'artiste !!!

- Je ne parviens pas à faire marcher la fonction Split, chez moi. Sans que j'ai pu en identifier la (les) cause(s).

Merci à vous. Bonne soirée. Cordialement.

Catroun

Bonsoir,

quand vous dites "dernière colonne d'un tableau", c'est pas plutôt "dernière colonne d'une feuille" ?

Si oui, il y a aussi moyen sans VBA avec cette formule matricielle ;

=STXT(ADRESSE(1;MAX(SI(ESTVIDE(LIGNE(2:2));0;COLONNE(2:2))));2;TROUVE("#";SUBSTITUE(ADRESSE(1;MAX(SI(ESTVIDE(LIGNE(2:2));0;COLONNE(2:2))));"$";"#";2))-2)

Renvoie XFD.

J'ai mis 2:2 pour la ligne mais on peut mettre 1:1, 3:3 ...

Merci Doux Rêveur,

Approche également intéressante que je garde en mémoire (dans mes fichiers "Recherches personnelle") pour une éventuelle future utilisation.

Bonne soirée.

Cordialement

Rechercher des sujets similaires à "conversion numerocolonne lettrecolonne caracteres 702 col"