un peu plus réduit ;-) =SUBSTITUE(ADRESSE(1;A1;4);1;"")
a+ rural thierry "garnote" a écrit dans le message de news: C8FBb.48613$
Salut Jlf,
J'ai deux formules à te proposer : Si à partir de C6, tu as : 1 2 3 4 . . .
Tu peux entrer cette formule en D6 et la recopier vers le bas. =SUBSTITUE(SUBSTITUE(ADRESSE(1;C6);"$";"");1;"")
Et une autre plus générale, à entrer dans une cellule quelconque : =SUBSTITUE(SUBSTITUE(ADRESSE(LIGNE(); _ COLONNE());"$";"");LIGNE();"")
Est-ce que ça te convient ?
Serge
"jlf" a écrit dans le message de news: br748i$h55$
bonjour
pardon si la question a déjà été posée mille fois :o))
comment convertir un No de colonne (entier de 1 à n) en son identité au format "A1"
par exemple : col 1 = A col 27 = AA etc
ça fait un petit moment que je cherche et j'ai un peu de mal, si quelqu'un
avait une formule ou un bout de code ça m'avancerait bien
merci d'avance jlf
jlf
"garnote" a écrit
J'ai deux formules à te proposer : Est-ce que ça te convient ?
merci à vous deux pour vos réponses je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le calcul mais du coup ça va me compliquer la vie car je devrais multiplier les feuilles tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici consulter les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié :o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string; var reste, diviseur : integer; const base = 26; begin Reste := n mod base; // modulo diviseur := n div base; // division entière
if Reste > 0 then Result := Chr(64 + Reste) // de A à Y else begin Result := Chr(64 + Base); // Z Dec(Diviseur); // pour réduire le 10 end;
if Diviseur > 0 then Result := NoColToA1(Diviseur) + Result; end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins jusqu'à 4 caractères (sauf pour 0 bien sûr)
bien amicalement jlf
"garnote" <rien@absent.net> a écrit
J'ai deux formules à te proposer :
Est-ce que ça te convient ?
merci à vous deux pour vos réponses
je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le
calcul mais du coup ça va me compliquer la vie car je devrais multiplier les
feuilles
tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé
mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus
comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici consulter
les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça
pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié
:o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string;
var reste, diviseur : integer;
const base = 26;
begin
Reste := n mod base; // modulo
diviseur := n div base; // division entière
if Reste > 0 then
Result := Chr(64 + Reste) // de A à Y
else
begin
Result := Chr(64 + Base); // Z
Dec(Diviseur); // pour réduire le 10
end;
if Diviseur > 0 then
Result := NoColToA1(Diviseur) + Result;
end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins jusqu'à
4 caractères (sauf pour 0 bien sûr)
J'ai deux formules à te proposer : Est-ce que ça te convient ?
merci à vous deux pour vos réponses je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le calcul mais du coup ça va me compliquer la vie car je devrais multiplier les feuilles tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici consulter les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié :o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string; var reste, diviseur : integer; const base = 26; begin Reste := n mod base; // modulo diviseur := n div base; // division entière
if Reste > 0 then Result := Chr(64 + Reste) // de A à Y else begin Result := Chr(64 + Base); // Z Dec(Diviseur); // pour réduire le 10 end;
if Diviseur > 0 then Result := NoColToA1(Diviseur) + Result; end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins jusqu'à 4 caractères (sauf pour 0 bien sûr)
bien amicalement jlf
garnote
Ce qui signifie donc que ma grosse formule devient : =SUBSTITUE(ADRESSE(1;COLONNE();4);1;"") Yep !
Serge
"ru-th" a écrit dans le message de news:
Salut Serge
un peu plus réduit ;-) =SUBSTITUE(ADRESSE(1;A1;4);1;"")
a+ rural thierry "garnote" a écrit dans le message de news: C8FBb.48613$
Salut Jlf,
J'ai deux formules à te proposer : Si à partir de C6, tu as : 1 2 3 4 . . .
Tu peux entrer cette formule en D6 et la recopier vers le bas. =SUBSTITUE(SUBSTITUE(ADRESSE(1;C6);"$";"");1;"")
Et une autre plus générale, à entrer dans une cellule quelconque : =SUBSTITUE(SUBSTITUE(ADRESSE(LIGNE(); _ COLONNE());"$";"");LIGNE();"")
Est-ce que ça te convient ?
Serge
"jlf" a écrit dans le message de news: br748i$h55$
bonjour
pardon si la question a déjà été posée mille fois :o))
comment convertir un No de colonne (entier de 1 à n) en son identité au
format "A1"
par exemple : col 1 = A col 27 = AA etc
ça fait un petit moment que je cherche et j'ai un peu de mal, si quelqu'un
avait une formule ou un bout de code ça m'avancerait bien
merci d'avance jlf
Ce qui signifie donc que ma grosse formule devient :
=SUBSTITUE(ADRESSE(1;COLONNE();4);1;"")
Yep !
Serge
"ru-th" <ailleurs@nowhere> a écrit dans le message de news:
u765DayvDHA.2360@TK2MSFTNGP10.phx.gbl...
Salut Serge
un peu plus réduit ;-)
=SUBSTITUE(ADRESSE(1;A1;4);1;"")
a+
rural thierry
"garnote" <rien@absent.net> a écrit dans le message de news:
C8FBb.48613$7C.47689@charlie.risq.qc.ca...
Salut Jlf,
J'ai deux formules à te proposer :
Si à partir de C6, tu as :
1
2
3
4
.
.
.
Tu peux entrer cette formule en D6 et la recopier vers le bas.
=SUBSTITUE(SUBSTITUE(ADRESSE(1;C6);"$";"");1;"")
Et une autre plus générale, à entrer dans une cellule quelconque :
=SUBSTITUE(SUBSTITUE(ADRESSE(LIGNE(); _
COLONNE());"$";"");LIGNE();"")
Est-ce que ça te convient ?
Serge
"jlf" <jean-luc.frantzXYZ@wanadoo.fr> a écrit dans le message de news:
br748i$h55$1@news-reader2.wanadoo.fr...
bonjour
pardon si la question a déjà été posée mille fois :o))
comment convertir un No de colonne (entier de 1 à n) en son identité
au
format "A1"
par exemple :
col 1 = A
col 27 = AA
etc
ça fait un petit moment que je cherche et j'ai un peu de mal, si
quelqu'un
avait une formule ou un bout de code ça m'avancerait bien
Ce qui signifie donc que ma grosse formule devient : =SUBSTITUE(ADRESSE(1;COLONNE();4);1;"") Yep !
Serge
"ru-th" a écrit dans le message de news:
Salut Serge
un peu plus réduit ;-) =SUBSTITUE(ADRESSE(1;A1;4);1;"")
a+ rural thierry "garnote" a écrit dans le message de news: C8FBb.48613$
Salut Jlf,
J'ai deux formules à te proposer : Si à partir de C6, tu as : 1 2 3 4 . . .
Tu peux entrer cette formule en D6 et la recopier vers le bas. =SUBSTITUE(SUBSTITUE(ADRESSE(1;C6);"$";"");1;"")
Et une autre plus générale, à entrer dans une cellule quelconque : =SUBSTITUE(SUBSTITUE(ADRESSE(LIGNE(); _ COLONNE());"$";"");LIGNE();"")
Est-ce que ça te convient ?
Serge
"jlf" a écrit dans le message de news: br748i$h55$
bonjour
pardon si la question a déjà été posée mille fois :o))
comment convertir un No de colonne (entier de 1 à n) en son identité au
format "A1"
par exemple : col 1 = A col 27 = AA etc
ça fait un petit moment que je cherche et j'ai un peu de mal, si quelqu'un
avait une formule ou un bout de code ça m'avancerait bien
merci d'avance jlf
rs
En vba : LettrecolÎlls(1,c).address(false,false)
avec c variale de 1 à 256= N° de colonne. T'as plus qu'à subtituer le "1" à la fin de l'adresse.
"jlf" a écrit dans le message de news: br79g0$isl$
"garnote" a écrit
J'ai deux formules à te proposer : Est-ce que ça te convient ?
merci à vous deux pour vos réponses je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le calcul mais du coup ça va me compliquer la vie car je devrais multiplier les
feuilles tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici consulter
les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié :o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string; var reste, diviseur : integer; const base = 26; begin Reste := n mod base; // modulo diviseur := n div base; // division entière
if Reste > 0 then Result := Chr(64 + Reste) // de A à Y else begin Result := Chr(64 + Base); // Z Dec(Diviseur); // pour réduire le 10 end;
if Diviseur > 0 then Result := NoColToA1(Diviseur) + Result; end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins jusqu'à
4 caractères (sauf pour 0 bien sûr)
bien amicalement jlf
En vba :
LettrecolÎlls(1,c).address(false,false)
avec c variale de 1 à 256= N° de colonne.
T'as plus qu'à subtituer le "1" à la fin de l'adresse.
"jlf" <jean-luc.frantzXYZ@wanadoo.fr> a écrit dans le message de news:
br79g0$isl$1@news-reader2.wanadoo.fr...
"garnote" <rien@absent.net> a écrit
J'ai deux formules à te proposer :
Est-ce que ça te convient ?
merci à vous deux pour vos réponses
je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le
calcul mais du coup ça va me compliquer la vie car je devrais multiplier
les
feuilles
tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé
mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus
comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici
consulter
les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça
pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié
:o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string;
var reste, diviseur : integer;
const base = 26;
begin
Reste := n mod base; // modulo
diviseur := n div base; // division entière
if Reste > 0 then
Result := Chr(64 + Reste) // de A à Y
else
begin
Result := Chr(64 + Base); // Z
Dec(Diviseur); // pour réduire le 10
end;
if Diviseur > 0 then
Result := NoColToA1(Diviseur) + Result;
end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins
jusqu'à
avec c variale de 1 à 256= N° de colonne. T'as plus qu'à subtituer le "1" à la fin de l'adresse.
"jlf" a écrit dans le message de news: br79g0$isl$
"garnote" a écrit
J'ai deux formules à te proposer : Est-ce que ça te convient ?
merci à vous deux pour vos réponses je ne savais pas qu'Excel n'acceptait que 256 colonnes, ça simplifie le calcul mais du coup ça va me compliquer la vie car je devrais multiplier les
feuilles tant pis :o))
s'agissant de la récup du nom de colonne depuis son No j'avais mal formulé mon pbm
en fait Excel n'est pas forcément ouvert lorsque j'en ai besoin, en plus comme j'y accède par OLE ce serait trop lent de l'utiliser
j'avais trouvé une soluce générale récursive avant de revenir ici consulter
les réponses
pas très utile avec la limite à 256 mais je vous la livre quand même, ça pourra servir à quelqu'un le jour ou le nombre de colonnes sera multiplié :o))
c'est du Pascal, mais facile à adapter dans n'importe quel language
function NoColToA1(n : integer) : string; var reste, diviseur : integer; const base = 26; begin Reste := n mod base; // modulo diviseur := n div base; // division entière
if Reste > 0 then Result := Chr(64 + Reste) // de A à Y else begin Result := Chr(64 + Base); // Z Dec(Diviseur); // pour réduire le 10 end;
if Diviseur > 0 then Result := NoColToA1(Diviseur) + Result; end;
j'ai vérifié en vitesse avec une base 3, ça semble marcher au moins jusqu'à