OVH Cloud OVH Cloud

Comment savoir la colonne actuel?

12 réponses
Avatar
Casrlos A.
Bonjour

J'ai besoin de connaître le nom de la colonne actuel.
Je remplis p.ex. la colonne B(n'importe qu'elle ligne) et je dois recuperer
"B".
Acuellement j'utilise un Button pour faire cela... Merci de vos lumières.
(Excel 2003)
...

10 réponses

1 2
Avatar
Patrick
Bonjour,

Voici la formule (en anglais, désolé) mais je suis sûr que tu reussiras à la
traduire en français :

=MID(ADDRESS(ROW(),COLUMN(),,TRUE),2,FIND("$",ADDRESS(ROW(),COLUMN(),,TRUE),2)-2)

Cordialement.

--
Patrick


"Casrlos A." wrote:

Bonjour

J'ai besoin de connaître le nom de la colonne actuel.
Je remplis p.ex. la colonne B(n'importe qu'elle ligne) et je dois recuperer
"B".
Acuellement j'utilise un Button pour faire cela... Merci de vos lumières.
(Excel 2003)
....





Avatar
Tchantchet
Dans le même style que pour l'activation d'une fonction, voici le
moyen de récupérer le nom de la colonne de la cellule sélectionnée.
Suivre le processus décrit pour le problème précédent. Le résultat
sera placé dans la celulle A1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
A = ActiveCell.Address
Cells(1, 1) = Mid(A, 2, 1)
End Sub
Avatar
Jacquouille
Bonsoir
Pourquoi pas, tout simplement
=colonne(B15)
=ligne(B15) ?
Bonne soirée

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Casrlos A." a écrit dans le message de news:

Bonjour

J'ai besoin de connaître le nom de la colonne actuel.
Je remplis p.ex. la colonne B(n'importe qu'elle ligne) et je dois
recuperer "B".
Acuellement j'utilise un Button pour faire cela... Merci de vos lumières.
(Excel 2003)
...



Avatar
FxM
Bonsoir
Pourquoi pas, tout simplement
=colonne(B15)
=ligne(B15) ?
Bonne soirée



Bonsoir Jacquouille,

parce que =colonne(B15) va te renvoyer 2 et pas "B" ??

=SI(COLONNE()>26;CAR(ENT((COLONNE()-1)/26)+64);"")&CAR(MOD((COLONNE()-1);26)+65)
renvoit à la fois la colonne en lettre et prévoit le cas des colonnes
après Z.

@+
FxM

Avatar
jps
y a pas que le Grand Breton que notre jacquouille ne comprend pas....

"FxM" a écrit dans le message de news:
%23zG3dp%
Bonsoir
Pourquoi pas, tout simplement
=colonne(B15)
=ligne(B15) ?
Bonne soirée



Bonsoir Jacquouille,

parce que =colonne(B15) va te renvoyer 2 et pas "B" ??

=SI(COLONNE()>26;CAR(ENT((COLONNE()-1)/26)+64);"")&CAR(MOD((COLONNE()-1);26)+65)
renvoit à la fois la colonne en lettre et prévoit le cas des colonnes
après Z.

@+
FxM




Avatar
Tchantchet
Sorry..., j'avais oublié le cas des colonnes après Z.
Voilà la macro corrigée:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
a = ActiveCell.Address
Cells(1, 1) = Mid(a, 2, InStr(Right(a, Len(a) - 1), "$") - 1)
End Sub

Cette manière de faire a pour moi l'avantage d'éviter l'encombrement
par une formule étrangère au contexte de la feuille.

remarques :

- Inscrire une valeur dans une cellule au moyen d'une macro implique
que celle est déprotégée sinon on reçoit un message d'erreur.
- Marquer la cellule réceptrice au moyen d'une couleur par exemple
afin de ne pas l'utiliser pour une formule ou donnée qui sera
écrasée par le nom de la colonne.
Avatar
Casrlos A.
Merci à tous
ça marche!

"Tchantchet" wrote in message
news:

Sorry..., j'avais oublié le cas des colonnes après Z.
Voilà la macro corrigée:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
a = ActiveCell.Address
Cells(1, 1) = Mid(a, 2, InStr(Right(a, Len(a) - 1), "$") - 1)
End Sub

Cette manière de faire a pour moi l'avantage d'éviter l'encombrement
par une formule étrangère au contexte de la feuille.

remarques :

- Inscrire une valeur dans une cellule au moyen d'une macro implique
que celle est déprotégée sinon on reçoit un message d'erreur.
- Marquer la cellule réceptrice au moyen d'une couleur par exemple
afin de ne pas l'utiliser pour une formule ou donnée qui sera
écrasée par le nom de la colonne.
Avatar
AV
"Cette manière de faire a pour moi l'avantage d'éviter l'encombrement
"par une formule étrangère au contexte de la feuille.

Heu...Pour le cas présent, je ne suis pas convaincu de la pertinence d'une proc
évènementielle

"- Inscrire une valeur dans une cellule au moyen d'une macro implique
"que celle est déprotégée sinon on reçoit un message d'erreur.

Mais non, mais non,... si au préalable on est allé mettre le nez dans les
propriétés de la feuille
Exemple dans le Workbook_Open
Sheets("Feuil1").Protect Contents:=True, UserInterfaceOnly:=True

Une alternative courte pour la lettre de la colonne (par vba (xl200 et plus)) :
x = Split(ActiveCell.Address, "$")(1)

AV
Avatar
Jacquouille
Salut François
Même si l'affichage est en L1C1 ?
Si tu dis oui, je répondrai:" Ah bon."
Si tu dis non, je répondrai: "Ah ?"
Pas testé.
Pas frapper.-))
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"FxM" a écrit dans le message de news:
%23zG3dp%
Bonsoir
Pourquoi pas, tout simplement
=colonne(B15)
=ligne(B15) ?
Bonne soirée



Bonsoir Jacquouille,

parce que =colonne(B15) va te renvoyer 2 et pas "B" ??

=SI(COLONNE()>26;CAR(ENT((COLONNE()-1)/26)+64);"")&CAR(MOD((COLONNE()-1);26)+65)
renvoit à la fois la colonne en lettre et prévoit le cas des colonnes
après Z.

@+
FxM




Avatar
FxM
Salut François
Même si l'affichage est en L1C1 ?
Si tu dis oui, je répondrai:" Ah bon."
Si tu dis non, je répondrai: "Ah ?"
Pas testé.
Pas frapper.-))



Bonsoir Jacquouille,

François dit : "peut-être, tu n'as qu'à tester" :o)))

@+
FxM

PS : Que tu sois en L1C1 ou en A1, =colonne(...) renvoit le numéro de
colonne d'une référence (dixit l'aide de la fonction). [testé]

1 2