Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

TopLeftCell d'un graphique

  • Initiateur de la discussion Initiateur de la discussion job75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

job75

XLDnaute Barbatruc
Bonjour le forum,

Sur Win 10 - Excel 2013 j'ai rencontré un problème avec la TopLeftCell d'un graphique.

Apparemment c'est bien un objet Range mais sans toutes ses propriétés.

Par contre aucun problème avec la Shape du graphique.

Fichiers joints, avez-vous le même problème sur les autres versions Excel ?

Bonne journée.
 

Pièces jointes

Bien le bonjour tout le monde

même problème avec 2007

la solution:

remplacer: ChartObjects(1).TopLeftCell.Cells(1).Address 'bug

par ceci:

Sub Test2()
MsgBox ChartObjects(1).TopLeftCell.Address(Cells(1).Address)
End Sub


et : MsgBox ChartObjects(1).TopLeftCell.Offset(, 1).Address 'bug

par ceci:

Sub Test3()
MsgBox ChartObjects(1).TopLeftCell.Address(ActiveCell.Offset(, 1).Address)
End Sub


EDIT: réponse à Job (sa réponse qui suit)
effectivement, je pensais simplement qu'il fallait passer out l'erreur en question !
autant pour moi !
 
Dernière édition:
Bonjour Roland,

Tu utilises TopLeftCell.Address qui ne beugue pas (voir le Test1).

Et ce que tu mets dans Address() étant du texte, ce texte est ignoré.

Donc tes codes renvoient toujours $B$4.

A+
 
Bonjour

Même chose sur 2010.

Je pense que TopLeftCell est un unique repère de la position du graphique mais le graphique n'étant pas un objet constitué de cellules, ce n'est pas réellement un range.


L'explorateur d'objet ne lui associe pas de cells.

Il faut se référer à la feuille en dessous pour des offset ou autre
Code:
Dim macellule As Range
Set macellule = ActiveSheet.Range(ChartObjects(1).TopLeftCell.Address)

Edit : la raison de la différence entre shape et un graphique n'est cependant pas très logique
 
Dernière édition:
Bonjour à toutes et à tous,

Cher j😀b75,

Que penser de ceci ( ? ) :
Code:
Option Explicit
Sub Test_00()
    MsgBox ChartObjects(1).TopLeftCell.Address(0, 0) & "  -  " & ChartObjects(1).BottomRightCell.Address(0, 0)
End Sub
Mais ce n'est peut-être pas ce que tu cherches.

Bises à chris 🙂 et job75 🙂

A bientôt 🙂
 
Bonjour chris,

Teste donc ceci, il n'y a aucun problème, comme pour Test1 :
Code:
Sub Test5()
Dim c As Range
Set c = ChartObjects(1).TopLeftCell
c.Select
End Sub
Ici TopLeftCell renvoie donc bien un Range.

Edit : hello chère ânesse.

Ce que je cherche à comprendre c'est pourquoi TopLeftCell n'a pas toutes les propriétés d'un Range.

A+
 
Re, Coucou 00 🙂
Bonjour chris,

Teste donc ceci, il n'y a aucun problème, comme pour Test1 :
Code:
Sub Test5()
Dim c As Range
Set c = ChartObjects(1).TopLeftCell
c.Select
End Sub
Ici TopLeftCell renvoie donc bien un Range.

Oui mais pas d'offset non plus... contrairement à macellule...

Comme dit dans l'edit de ma précédente réponse : je ne vois pas pourquoi il y a une différence de traitement entre graph et shape, mais l'explorateur d'objets donne bien une propriété cells à l'un et pas à l'autre.

Mais tout est loin d'être logique chez Microsoft...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
700
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
495
Réponses
6
Affichages
549
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…