Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cellule "active" d'une feuille non active

13 réponses
Avatar
JF
Bonjour =E0 tous,
J'essais de trouver un truc en VBA pouvant me donner les=20
coordonn=E9es de la cellule s=E9lectionn=E9e d'un worksheet=20
quelconque du genre :=20
LigneActive =3D worksheets("PasActif").=ABselectedcell=BB.row

Merci!

10 réponses

1 2
Avatar
...Patrick
mrow = activecell.row
mcol = activecell.column
madr = activecell.address


--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"JF" a écrit dans le message de
news:3f9b01c49013$2b6627b0$
Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!
Avatar
JF
Salut Patrick,
L'info sur la cellule que je recherche n'est pas sur la
feuille active. Ce n'est donc pas le range «activecell» !

-----Message d'origine-----
mrow = activecell.row
mcol = activecell.column
madr = activecell.address


--
....Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"JF" a écrit dans
le message de

news:3f9b01c49013$2b6627b0$
Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


.



Avatar
Laurent
Bonsoir,

C'est pas joli-joli, mais ça marche!

Public Function selectionRow() As Integer
Dim feuilleCourante As Worksheet
Set feuilleCourante = ActiveSheet
Sheets("PasActif").Activate
selectionRow = Selection.Row
feuilleCourante.Activate
End Function

Qui dit mieux ?

Laurent

"JF" a écrit dans le message de news:439401c49046$57ac8110$
Salut Patrick,
L'info sur la cellule que je recherche n'est pas sur la
feuille active. Ce n'est donc pas le range «activecell» !

-----Message d'origine-----
mrow = activecell.row
mcol = activecell.column
madr = activecell.address


--
....Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"JF" a écrit dans
le message de

news:3f9b01c49013$2b6627b0$
Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


.



Avatar
JF
Merci tout de même... C'est ce que je faisais plus avec
des booléens pour empêcher les évenements (enableenvents
ne fonctionne pas à tous les coups)
-----Message d'origine-----
Bonsoir,

C'est pas joli-joli, mais ça marche!

Public Function selectionRow() As Integer
Dim feuilleCourante As Worksheet
Set feuilleCourante = ActiveSheet
Sheets("PasActif").Activate
selectionRow = Selection.Row
feuilleCourante.Activate
End Function

Qui dit mieux ?

Laurent

"JF" a écrit dans
le message de news:439401c49046$57ac8110

$
Salut Patrick,
L'info sur la cellule que je recherche n'est pas sur la
feuille active. Ce n'est donc pas le range «activecell» !

-----Message d'origine-----
mrow = activecell.row
mcol = activecell.column
madr = activecell.address


--
....Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"JF" a écrit dans
le message de

news:3f9b01c49013$2b6627b0$
Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


.




.




Avatar
AV
Qui dit mieux ?


Moi ;-) :

Public Function selectionRow() As Double
selectionRow = Selection.Row
End Function

Mais c'est pas la question (qui, en l'état, me semble sans solution...)

AV

Avatar
Michel Gaboly
Bonjour,

Voici une solution partielle :

Si un seul classeur est concerné, ajoute cette procédure
au module de chaque feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Me.Names.Add "CellActive", "=" & ActiveCell.Address
End Sub

ou, bien sûr, cette ligne à la procédure si elle existe déjà.

Me.Names.Add "CellActive", "=" & ActiveCell.Address

Tu définis ainsi un nom de niveau feuille, mis à jour chaque
fois que la sélection est modifiée, qui peut ensuite utilisé dans
une autre feuille ou dans VBA.

Par exemple :

=LIGNE(Feuil1!CellActive)

ou

Sub Test()
CellActive "Feuil1"
End Sub

Private Sub CellActive(f As String)
MsgBox Sheets(f).Range("CellActive").Row
End Sub


Cependant, il s'agit seulement d'une solution partielle
pour au moins 2 raisons :

- Cela ne fonctionne que pour les feuilles pour lesquelles
le nom de niveau feuille CellActive est mis à jour par
l'événement SelectionChange.

- D'autre part, si la sélection comporte plusieurs cellules,
et que tu te déplaces au sein de la sélection, l'événement
SelectionChange n'est pas déclenché, et donc CellActive
n'est pas mis à jour.




Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
isabelle
bonjour JF,

une solution serait d'insérer un nom à chaque changement de cellule
active,

à copier sur la page ThisWorkbook,

Private Sub Workbook_SheetSelectionChange _
(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
ActiveWorkbook.Names("zz" & ActiveSheet.Name).Delete
ActiveWorkbook.Names.Add Name:="zz" & _
ActiveSheet.Name, RefersTo:¬tiveSheet.Name & "!" & Target.Address
End Sub

sur un module,

Function LigneActive(Feuille As String)
Application.Volatile
x = ThisWorkbook.Names("zz" & Feuille)
LigneActive = Val(Right(x, Len(x) - InStrRev(x, "$")))
End Function

isabelle


Merci tout de même... C'est ce que je faisais plus avec
des booléens pour empêcher les évenements (enableenvents
ne fonctionne pas à tous les coups)
-----Message d'origine-----
Bonsoir,

C'est pas joli-joli, mais ça marche!

Public Function selectionRow() As Integer
Dim feuilleCourante As Worksheet
Set feuilleCourante = ActiveSheet
Sheets("PasActif").Activate
selectionRow = Selection.Row
feuilleCourante.Activate
End Function

Qui dit mieux ?

Laurent

"JF" a écrit dans
le message de news:439401c49046$57ac8110

$
Salut Patrick,
L'info sur la cellule que je recherche n'est pas sur la
feuille active. Ce n'est donc pas le range «activecell» !

-----Message d'origine-----
mrow = activecell.row
mcol = activecell.column
madr = activecell.address


--
....Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"JF" a écrit dans
le message de

news:3f9b01c49013$2b6627b0$
Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner les
coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


.




.






Avatar
JF
Merci à tous!
-----Message d'origine-----
Bonjour,

Voici une solution partielle :

Si un seul classeur est concerné, ajoute cette procédure
au module de chaque feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)

Me.Names.Add "CellActive", "=" & ActiveCell.Address
End Sub

ou, bien sûr, cette ligne à la procédure si elle existe
déjà.


Me.Names.Add "CellActive", "=" & ActiveCell.Address

Tu définis ainsi un nom de niveau feuille, mis à jour
chaque

fois que la sélection est modifiée, qui peut ensuite
utilisé dans

une autre feuille ou dans VBA.

Par exemple :

=LIGNE(Feuil1!CellActive)

ou

Sub Test()
CellActive "Feuil1"
End Sub

Private Sub CellActive(f As String)
MsgBox Sheets(f).Range("CellActive").Row
End Sub


Cependant, il s'agit seulement d'une solution partielle
pour au moins 2 raisons :

- Cela ne fonctionne que pour les feuilles pour
lesquelles

le nom de niveau feuille CellActive est mis à jour par
l'événement SelectionChange.

- D'autre part, si la sélection comporte plusieurs
cellules,

et que tu te déplaces au sein de la sélection,
l'événement

SelectionChange n'est pas déclenché, et donc CellActive
n'est pas mis à jour.




Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner
les


coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.




Avatar
isabelle
une autre facon et beaucoup plus simple,

à copier sur la page ThisWorkbook,

Private Sub Workbook_SheetSelectionChange _
(ByVal Sh As Object, ByVal Target As Range)
ActiveWorkbook.Names.Add Name:="zz" & _
ActiveSheet.Name, RefersTo:=Target.Row
End Sub

mettre la formule suivante dans une cellule en modifiant le nom de la
feuille au besoin,

=zzFeuil2

isabelle


Merci à tous!
-----Message d'origine-----
Bonjour,

Voici une solution partielle :

Si un seul classeur est concerné, ajoute cette procédure
au module de chaque feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)

Me.Names.Add "CellActive", "=" & ActiveCell.Address
End Sub

ou, bien sûr, cette ligne à la procédure si elle existe
déjà.


Me.Names.Add "CellActive", "=" & ActiveCell.Address

Tu définis ainsi un nom de niveau feuille, mis à jour
chaque

fois que la sélection est modifiée, qui peut ensuite
utilisé dans

une autre feuille ou dans VBA.

Par exemple :

=LIGNE(Feuil1!CellActive)

ou

Sub Test()
CellActive "Feuil1"
End Sub

Private Sub CellActive(f As String)
MsgBox Sheets(f).Range("CellActive").Row
End Sub


Cependant, il s'agit seulement d'une solution partielle
pour au moins 2 raisons :

- Cela ne fonctionne que pour les feuilles pour
lesquelles

le nom de niveau feuille CellActive est mis à jour par
l'événement SelectionChange.

- D'autre part, si la sélection comporte plusieurs
cellules,

et que tu te déplaces au sein de la sélection,
l'événement

SelectionChange n'est pas déclenché, et donc CellActive
n'est pas mis à jour.




Bonjour à tous,
J'essais de trouver un truc en VBA pouvant me donner
les


coordonnées de la cellule sélectionnée d'un worksheet
quelconque du genre :
LigneActive = worksheets("PasActif").«selectedcell».row

Merci!


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


.






Avatar
AV
une autre facon et beaucoup plus simple,


Reste un petit problème : si sélection multiple de feuilles et sélection d'une
cellule, le nom n'est mis à jour pour aucune des feuilles (si ce n'est la
feuille active) sélectionnées..
Je ne pense pas que ce problème là soit soluble...

AV

1 2