OVH Cloud OVH Cloud

N° de ligne de la cellule sélectionnée (dans Excel)

26 réponses
Avatar
LANIMAL
Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.

10 réponses

1 2 3
Avatar
AV
Heu...j'ai répondu en fonction du titre... et non du texte de la question !
Je pense que si tu donnais le contexte d'utilisation (exemple concret), il
serait plus facile de répondre précis et différemment...
Un truc comme ­RESSE(LIGNE();COLONNE();4)
Ne sert pas à grand chose en l'état ...me semble-t-il

"..je voudrais exploiter l'info dans des formules Excel ..."
C'est plutôt de ces formules dont tu devrais nous parler

AV
Avatar
LANIMAL
Merci lSteph, tu as tout compris.
Comme j'ai eu des soucis avec les
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
j'ai pris l'habitude de les écarter à priori
(à vrai dire je crois que je les utilisais mal).
Ton exemple me réconcilie.
Comme je n'aime pas trop multiplier les noms
(manque de pratique, peut-être ?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
et $HA$1 représente dans mes formules le n° de la 1ère ligne de la
sélection.

J'ai aussi dans la feuille une
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
qui réagit donc à chaque changement de sélection, mais je la calme en
lui mettant en tête :
If Target.Address = "HA1" Then
Exit Sub
...
Merci de ton aide qui me fait faire un petit pas de plus en avant.


Peut-être que j'ai compris:
Dans ta feuile définis un nom "toto" qui réfère à une cellule bien isolée
exemple $ii$22222
n'oublies surtout pas les $, après tu pourras appeler =toto dans tes
formules.

Dans le code la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("toto") = Selection.Cells(1).Row
End Sub

'lSteph
"LANIMAL" a écrit dans le message de news:
OT$
Oui, mais ce que je cherche c'est qqchose comme
ligne(Selection), la sélection pouvant être obtenue par exemple par un
déplacement de la souris + clic, par flèches, ou encore par une succession
de <ENTREE>, sans saisies.
Ca me fait râler de voir que cette info me nargue :-((( à gauche de la
barre de formules, et que je ne peux pas l'exploiter dans des formules.
Vois aussi ma réponse à AV.
Merci de ton attention.

Bonjour,

=ligne(b2)
ou
=ligne(b2:c4)

donnent ainsi 2

lSteph

"LANIMAL" a écrit dans le message de news:

Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.









Avatar
LANIMAL
Merci lSteph, tu as tout compris.
Comme j'ai eu des soucis avec les
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
j'ai pris l'habitude de les écarter à priori
(à vrai dire je crois que je les utilisais mal).
Ton exemple me réconcilie.
Comme je n'aime pas trop multiplier les noms
(manque de pratique, peut-être ?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
et $HA$1 représente dans mes formules le n° de la 1ère ligne de la
sélection.

J'ai aussi dans la feuille une
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
qui réagit donc à chaque changement de sélection, mais je la calme en
lui mettant en tête :
If Target.Address = "HA1" Then
Exit Sub
...
Merci de ton aide qui me fait faire un petit pas de plus en avant.

Peut-être que j'ai compris:
Dans ta feuile définis un nom "toto" qui réfère à une cellule bien isolée
exemple $ii$22222
n'oublies surtout pas les $, après tu pourras appeler =toto dans tes
formules.

Dans le code la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("toto") = Selection.Cells(1).Row
End Sub

'lSteph
"LANIMAL" a écrit dans le message de news:
OT$
Oui, mais ce que je cherche c'est qqchose comme
ligne(Selection), la sélection pouvant être obtenue par exemple par un
déplacement de la souris + clic, par flèches, ou encore par une succession
de <ENTREE>, sans saisies.
Ca me fait râler de voir que cette info me nargue :-((( à gauche de la
barre de formules, et que je ne peux pas l'exploiter dans des formules.
Vois aussi ma réponse à AV.
Merci de ton attention.

Bonjour,

=ligne(b2)
ou
=ligne(b2:c4)

donnent ainsi 2

lSteph

"LANIMAL" a écrit dans le message de news:

Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.









Avatar
ABED HADDOU
Bonsoir lsteph
C’et vrais que je suis chez lanimal parceque je sais que tu va revenir chez
lui, j’ai dis vaut mieux que j’attend ici pour je le rencontre et je pose ma
question directement a lui.
Merci pour ta réponse.
à bientôt.


Bonjour ABED,
Au cas où , il me semble que tu es dans la ficelle créée par LANIMAL!
Je pose la même question de Yven mais cette fois ci sur un « inputBox »


Utiliser plutôt un userform avec un textbox et se servir de la propriété
PasswordChar

lSteph
"ABED HADDOU" a écrit dans le message
de news:
Bonjour a tout,

Pero pour : lsteph c'est jps qui ma orienté vers toi.
Je pose la même question de Yven mais cette fois ci sur un « inputBox »
Je souhaite, via une macro, faire saisir un mot de passe à un utilisateur,
et que quelque soit le caractère saisi, ce soit un "*" qui apparaisse dans
inputBox
Quelle syntaxe utiliser ???

Merci d'avance lsteph.



Bonjour,

=ligne(b2)
ou
=ligne(b2:c4)

donnent ainsi 2

lSteph

"LANIMAL" a écrit dans le message de news:

Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.














Avatar
lSteph
Non cela ne va pas:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
Il faut garder réference à une plage préalablement nommée dans la feuille

par Définir un nom
ainsi même si tu bouge des lignes ou des colonnes elle s'y adaptera
dynamiquement (sauf suppression bien sûr))
Range("toto") = Selection.Cells(1).Row
restera toto



Et surtout dans la définition bien garder les $ .

lSteph

"LANIMAL" a écrit dans le message de news:

Merci lSteph, tu as tout compris.
Comme j'ai eu des soucis avec les
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
j'ai pris l'habitude de les écarter à priori
(à vrai dire je crois que je les utilisais mal).
Ton exemple me réconcilie.
Comme je n'aime pas trop multiplier les noms
(manque de pratique, peut-être ?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
et $HA$1 représente dans mes formules le n° de la 1ère ligne de la
sélection.

J'ai aussi dans la feuille une
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
qui réagit donc à chaque changement de sélection, mais je la calme en lui
mettant en tête :
If Target.Address = "HA1" Then
Exit Sub
...
Merci de ton aide qui me fait faire un petit pas de plus en avant.


Peut-être que j'ai compris:
Dans ta feuile définis un nom "toto" qui réfère à une cellule bien
isolée exemple $ii$22222
n'oublies surtout pas les $, après tu pourras appeler =toto dans tes
formules.

Dans le code la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("toto") = Selection.Cells(1).Row
End Sub

'lSteph
"LANIMAL" a écrit dans le message de news:
OT$
Oui, mais ce que je cherche c'est qqchose comme
ligne(Selection), la sélection pouvant être obtenue par exemple par un
déplacement de la souris + clic, par flèches, ou encore par une
succession de <ENTREE>, sans saisies.
Ca me fait râler de voir que cette info me nargue :-((( à gauche de la
barre de formules, et que je ne peux pas l'exploiter dans des formules.
Vois aussi ma réponse à AV.
Merci de ton attention.

Bonjour,

=ligne(b2)
ou
=ligne(b2:c4)

donnent ainsi 2

lSteph

"LANIMAL" a écrit dans le message de news:

Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.











Avatar
LANIMAL
Je comprends ce que je n'avais pas compris.
J'ai oublié de terminer mon dernier message en t'invitant à me reprendre
éventuellement, si ce n'était pas abuser de ton tps.
Tu l'as deviné... Merci et bonsoir.

Non cela ne va pas:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
Il faut garder réference à une plage préalablement nommée dans la feuille

par Définir un nom
ainsi même si tu bouge des lignes ou des colonnes elle s'y adaptera
dynamiquement (sauf suppression bien sûr))
Range("toto") = Selection.Cells(1).Row
restera toto



Et surtout dans la définition bien garder les $ .

lSteph

"LANIMAL" a écrit dans le message de news:

Merci lSteph, tu as tout compris.
Comme j'ai eu des soucis avec les
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
j'ai pris l'habitude de les écarter à priori
(à vrai dire je crois que je les utilisais mal).
Ton exemple me réconcilie.
Comme je n'aime pas trop multiplier les noms
(manque de pratique, peut-être ?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("HA1") = Selection.Row
End Sub
et $HA$1 représente dans mes formules le n° de la 1ère ligne de la
sélection.

J'ai aussi dans la feuille une
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
qui réagit donc à chaque changement de sélection, mais je la calme en lui
mettant en tête :
If Target.Address = "HA1" Then
Exit Sub
...
Merci de ton aide qui me fait faire un petit pas de plus en avant.


Peut-être que j'ai compris:
Dans ta feuile définis un nom "toto" qui réfère à une cellule bien
isolée exemple $ii$22222
n'oublies surtout pas les $, après tu pourras appeler =toto dans tes
formules.

Dans le code la feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("toto") = Selection.Cells(1).Row
End Sub

'lSteph
"LANIMAL" a écrit dans le message de news:
OT$
Oui, mais ce que je cherche c'est qqchose comme
ligne(Selection), la sélection pouvant être obtenue par exemple par un
déplacement de la souris + clic, par flèches, ou encore par une
succession de <ENTREE>, sans saisies.
Ca me fait râler de voir que cette info me nargue :-((( à gauche de la
barre de formules, et que je ne peux pas l'exploiter dans des formules.
Vois aussi ma réponse à AV.
Merci de ton attention.

Bonjour,

=ligne(b2)
ou
=ligne(b2:c4)

donnent ainsi 2

lSteph

"LANIMAL" a écrit dans le message de news:

Bonjour
Existe-t-il une fonction Excel (pas VBA)
qui donne le n° de ligne de la cellule en haut à gauche
d'une sélection, ou sa référence ?
C'est en fait l'indication située à gauche de la barre de formules,
mais je ne sais pas comment la récupérer.
(Rem. Je voudrais éviter de passer par une Sub Evènement Change ou
SélectionChange qui ne conviennent pas pour mon application).
Merci de m'avoir lu...
et 1000 mercis à celui ou ceux qui me proposeront la solution.














Avatar
LANIMAL
C'est pour faire court que je n'expose pas les détails, mais il arrive
effectivement que le résultat soit contraire :-(((
Mon pb est maintenant résolu, mais par correction je te réponds :
Il s'agit de réviser (en descendant) un tableau incomplet.
Sur chaque ligne n la cellule (en col.S) soit Sn est dédiée à des
messages d'erreur conditionnels relatifs aux données de la ligne n.
Mais, pour différentes raisons je veux que ces messages n'apparaissent
que sur les lignes situées au dessus de la sélection
(c'est à dire au dessus de la ligne en cours de révision).
J'ai donc sur chaque ligne n dans la cellule Sn une formule du type :
=SI(LIGNE()<(LIGNE de la sélection) ;
SI(test1=VRAI;"message1";
SI(test2=VRAI;"message2"; etc. ...)))
C'est vrai que c'était peut-être + clair de l'écrire comme cela.
Merci, AV pour ton attention et bonsoir.

Heu...j'ai répondu en fonction du titre... et non du texte de la question !
Je pense que si tu donnais le contexte d'utilisation (exemple concret), il
serait plus facile de répondre précis et différemment...
Un truc comme ­RESSE(LIGNE();COLONNE();4)
Ne sert pas à grand chose en l'état ...me semble-t-il

"..je voudrais exploiter l'info dans des formules Excel ..."
C'est plutôt de ces formules dont tu devrais nous parler

AV




Avatar
Fredo P
Une petite question ,à quoi sert "Item" puisque avec ou sans, le résultat
est le même?
"AV" a écrit dans le message de news:

Sub zz()
MsgBox Selection.Row
MsgBox Selection.Item(1).Address
End Sub

AV




Avatar
AV
| > MsgBox Selection.Item(1).Address

| Une petite question ,à quoi sert "Item" puisque avec ou sans, le résultat
| est le même?


?? pas de sur de comprendre la question

... car avec comme plage sélectionnée A1:B5
MsgBox Selection.Item(1).Address
renvoie l'adresse du 1° élément de la sélection --> $A$1
alors que
MsgBox Selection.Address
renvoie l'adresse de la sélection --> $A$1:$B$5

Evidemment, s'il n'y a qu'une cellule sélectionnée, pas besoin de "Item" !
C'était la question ?

AV
Avatar
Fredo P
Eh oui merci AV c'était bien cela la question.
"AV" a écrit dans le message de news:
#5BQY#
| > MsgBox Selection.Item(1).Address

| Une petite question ,à quoi sert "Item" puisque avec ou sans, le
résultat

| est le même?


?? pas de sur de comprendre la question

... car avec comme plage sélectionnée A1:B5
MsgBox Selection.Item(1).Address
renvoie l'adresse du 1° élément de la sélection --> $A$1
alors que
MsgBox Selection.Address
renvoie l'adresse de la sélection --> $A$1:$B$5

Evidemment, s'il n'y a qu'une cellule sélectionnée, pas besoin de "Item" !
C'était la question ?

AV




1 2 3