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

Curiosité : ActiveSheet.ActiveCell ne fonctionne pas

2 réponses
Avatar
Alou Bela
Bonjour !

Question de curiosit=E9 :

Qui peut me dire pourquoi

ActiveCell.Value =3D "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value =3D "Tagada"

Ne fonctionne jamais ?

2 réponses

Avatar
michdenis
Bonjour,

"ActiveCell" représente toujours la cellule active de la feuille du classeur visible à l'écran.
"ActiveCell" ne peut pas être une cellule appartenant à une feuille qui n'est pas visible à l'écran.

ActiveCell est une "propriété" de l'objet "Application" et nom à l'objet Worksheet

Pour le plaisir, tu peux faire ceci:
'--------------------------------
Sub test()
Dim Adr As String
Dim NomFeuille As String

Adr = Application.ActiveCell.Address
NomFeuille = ActiveCell.Parent.Name

With Worksheets(NomFeuille)
With .Range(Adr)
.Value = "toto"
End With
End With
End Sub
'--------------------------------



--
MichD
--------------------------------------------


"Alou Bela" a écrit dans le message de groupe de discussion :

Bonjour !

Question de curiosité :

Qui peut me dire pourquoi

ActiveCell.Value = "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value = "Tagada"

Ne fonctionne jamais ?
Avatar
michdenis
Pour comprendre ceci :
ActiveCell est une "propriété" de l'objet "Application" et non de l'objet Worksheet

Une instance d'Excel - l'application - pourrait avoir plusieurs classeurs d'ouverts en même temps.
ActiveCell fait référence à la cellule active pour cette instance d'Excel peu importe le classeur
actif. La cellule active sera toujours celle qui appartient à la feuille visible à l'écran.
C'est ce pour quoi "ActiveCell" est une propriété de l'objet "Application" plutôt que d'un
objet "Worksheet".
X = Activecell.Parent.parent.name retourne le nom du classeur actif
Y = ActiveCell.Parent.name retourne le nom de la feuille active
Z = ActiveCell.Address retourne l'adresse de la cellule active

--
MichD
--------------------------------------------


"michdenis" a écrit dans le message de groupe de discussion : i91io7$o1h$
Bonjour,

"ActiveCell" représente toujours la cellule active de la feuille du classeur visible à l'écran.
"ActiveCell" ne peut pas être une cellule appartenant à une feuille qui n'est pas visible à l'écran.

ActiveCell est une "propriété" de l'objet "Application" et nom à l'objet Worksheet

Pour le plaisir, tu peux faire ceci:
'--------------------------------
Sub test()
Dim Adr As String
Dim NomFeuille As String

Adr = Application.ActiveCell.Address
NomFeuille = ActiveCell.Parent.Name

With Worksheets(NomFeuille)
With .Range(Adr)
.Value = "toto"
End With
End With
End Sub
'--------------------------------



--
MichD
--------------------------------------------


"Alou Bela" a écrit dans le message de groupe de discussion :

Bonjour !

Question de curiosité :

Qui peut me dire pourquoi

ActiveCell.Value = "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value = "Tagada"

Ne fonctionne jamais ?