Curiosité : ActiveSheet.ActiveCell ne fonctionne pas

Le
Alou Bela
Bonjour !

Question de curiosité :

Qui peut me dire pourquoi

ActiveCell.Value = "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value = "Tagada"

Ne fonctionne jamais ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #22669601
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"
Bonjour !

Question de curiosité :

Qui peut me dire pourquoi

ActiveCell.Value = "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value = "Tagada"

Ne fonctionne jamais ?
michdenis
Le #22669961
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" 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"
Bonjour !

Question de curiosité :

Qui peut me dire pourquoi

ActiveCell.Value = "Tagada"

Fonctionne, mais :

ActiveSheet.ActiveCell.Value = "Tagada"

Ne fonctionne jamais ?
Publicité
Poster une réponse
Anonyme