Trouver la lettre de la colonne de la cellule active

Sofhy

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à extraire la lettre de la colonne de la cellule active.

Par exemple, si je fais :

Code:
Sub Ma_Macro    
Y as String
Range B1.select
Selection.End(xlToRight).Offset(1, 0).Select
y = Selection.Address [COLOR="Blue"][B]ici, il me rapporte les coordonnées complètes,
par exemple E2. Comment faire pour qu'il me rapporte uniquement "E"[/B][/COLOR]
End Sub
J'ai trouvé pour rapporter les coordonnées complètes, le numéro de la ligne, mais la lettre de la colonne ... je coince.

Merci par avance pour votre aide,
Sofhy
 
G

Guest

Guest
Re : Trouver la lettre de la colonne de la cellule active

Bonjour Sofhy

Code:
Y= Split(Selection.Address,"$")(1)
A+

[Edit] Oups, j'avais mis un ; en lieu et place de la virgule:rolleyes: C'est corrigé
 
Dernière édition par un modérateur:

pierrejean

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

Bonjour Sofhy

Etudies ceci

Code:
Sub Ma_Macro()
Dim Y As String
Range("B1").Select
Selection.End(xlToRight).Offset(1, 0).Select
Y = Replace(Selection.Address(0, 0), Selection.Row, "")
MsgBox (Y)
End Sub
 
edit : salut Hasco
 

Sofhy

XLDnaute Occasionnel
Re : Trouver la lettre de la colonne de la cellule active

Bonjour Hasco, Bonjour PierreJean,

Les deux fonctionnes à merveille.

@Hasco
Avant ton edit, j'avais recherché sur Internet la fonction Split et du coup j'avais pu corriger. Et j'ai vu que si je mettais (2) au lieu de (1), il rapportait le numéro de la ligne.

@PierreJean
Je n'ai rien trouvé de très probant sur internet ou l'aide Excel concernant la fonction. Je sais que Selection.Address(0, 0) permet de retirer les $$. Mais comment fonctionne replace ? (histoire de comprendre :eek:)

Merci à vous deux et bonne journée,
Sophie
 

pierrejean

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

Re
x=replace(A,b,c)
x vaut A dans lequel on a remplacé b par c
Dans la macro fournie
Adress(0,0) ote les $ et replace ote le numero de ligne : ne reste donc que la (ou les ) lettre(s)
ote =remplace par ""
 

Sofhy

XLDnaute Occasionnel
Re : Trouver la lettre de la colonne de la cellule active

Re,

Ok,
Merci pour les explications.

A++
Sofhy
 

CB60

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

Bonjour
Il y a ça aussi.
HTML:
Sub Ma_Macro()
Dim Y As String
Range("B1").Select
Selection.End(xlToRight).Offset(1, 0).Select
Y = Chr(64 + Selection.Column())
MsgBox Y
End Sub
 

MJ13

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

Bonjour à tous

Hors sujet.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

Re

a Bruno
Au mieux pour avoir une seule lettre !!!
Je te suggere de tester ta proposition
 

Sofhy

XLDnaute Occasionnel
Re : Trouver la lettre de la colonne de la cellule active

Bonjour à tous,

Après les explications de Pierre-Jean, je n'ai pas suivi la vie du post.
Merci CB60, Jean-Marcel et Pierre-Jean pour ces nouveaux codes.

Bonne journée,
:D Sofhy
 

CB60

XLDnaute Barbatruc
Re : Trouver la lettre de la colonne de la cellule active

re Tous
Merci PierreJean pour le test, je n'etais pas allé au dela de l'alphabet.
 

paoloadv

XLDnaute Nouveau
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à ! ;^)
 

job75

XLDnaute Barbatruc
Bonjour paoloadv,

Très bien mais ce fil c'est pour "trouver la lettre de la colonne de la cellule active".

S'il faut entrer une formule dans la colonne de la cellule active autant lever les yeux et lire le nom de la colonne.

Evidemment si les en-têtes ne sont pas affichées c'est utile :rolleyes:

A+
 

Modeste geedee

XLDnaute Barbatruc
Bonsour® paoloadv
Pour les sujets "atemporel" une recherche dans les discussions passées aurait apportée des réponses ,
sans avoir à déterrer un post de 2010
réponses déjà apportées bien antérieurement ...

;)
Tsssss... Tsssss...
Voyons Job
pourquoi faire simple ??
Plus court encore ???
Définir le nom :
LettreCol:
1574789283413.png
tapez ensuite
=Lettrecol
dans la cellule voulue
1574790304079.png
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas