Récupérer le nom d'un object

Récupérer le nom d'un object - VB/VBA/VBS - Programmation

Marsh Posté le 21-04-2006 à 11:25:27    

Salut
 
 
je travaille sur un fichier avec de nombreux onglets.
Le contenu de chaque onglet est semblable et un graphique croisé dynamique y est généré.
 
J'aimerai mettre en forme ce graphique en lui assignant une macro. Pour cela j'ai besoin de récupérer le nom du graphique qur lequelle je vais cliquer.
 
Comment faire.
 
J'ai essayé des trucs comme chart_name = Activechart.name... ca ne marche pas
 
Merci!
 
lden


Message édité par lden le 25-04-2006 à 13:00:02
Reply

Marsh Posté le 21-04-2006 à 11:25:27   

Reply

Marsh Posté le 21-04-2006 à 15:41:24    

Salut iden,
juste 2 petites questions :
1 ton graph est une feuille de graph ou un graph inséré dans une feuille de calcul ?
2 tu est sous quelle version d'excel ?
ps: pour info, j'obtiens des résultats un peu farfellu chez moi si le graph est inséré dans une feuille de calcul :
ActiveChart.Name renvois : Graph BEM 01 à 06 Graphique 1 (soit nom de la feuille + espace + graphique + espace + index du graph)
selection.Name renvois : Graphique

Code :
  1. Dim ch As ChartObject
  2. Set ch = Worksheets(1).ChartObjects.Add(100, 30, 400, 250)
  3. ch.Chart.ChartWizard Source:=Worksheets(1).Range("a1:a20" ), _
  4.     gallery:=xlLine, Title:="New Chart"


en créant le graph ainsi, j'obtiens :
ch.Name renvoi : Chart 1
ch.Chart.Name renvoi : Feuil2 Graphique 1
Par contre si c'est une feuille de graphique là aucun soucis j'ai en retour le nom de ma feuille.
@+

Reply

Marsh Posté le 21-04-2006 à 16:41:59    

salut,  
 
je travail sous excel 2002 spe 3(vers 10.6).
Le graphe est inséré en objet dans la meme feuille de calcul.
C'est un graphe génére par un TDC, donc je n'ai pas a le créer.
quand je fais Activechart.name il me dit que c'est une propriete invalide ou que je ne peut l'utiliser ici.
Petite précision: est ce different si la macro est assigné au graph ou si c'est un bouton qui la déclenche.(dans un cas l'action se fait sur le graphe, il est peut etre plus imple de recupérer son nom)
 
 
voila le code
 
Range("A636" ).Select
    ActiveSheet.PivotTables("PivotTable1" ).PivotCache.Refresh
    'nom_feuille = ActiveSheet.Name
    'mise_en_forme_region (nom_feuille)
    Range("I663" ).Value = Date
    ActiveChart.Name 'ne marche pas
    'Dim Mychart As Object
    'Set Mychart = Charts
    'chart_name = Mychart.Name
    'mychart.Activate
    'ici j'aimerai récupérer le nom du graphique qui est "12"
    'et pouvoir donc le passer en variable.
ActiveSheet.ChartObjects("12" ).Activate
    ActiveChart.SeriesCollection(2).Select
    With Selection
        .Border.Weight = xlThin
        .Border.LineStyle = xlNone
        .Shadow = False
        .InvertIfNegative = False
        .Interior.ColorIndex = xlNone
    End With
 
 
 
Merci

Reply

Marsh Posté le 21-04-2006 à 17:06:40    

Je sais pas quoi te répondre comme celà j'ai aussi un excel 2002.
 
Comme je te l'ai indiqué j'ai des résultats sur activechart.Name même si ce n'est pas tout à fait ceux que je pensais...
 
Si tu veux je peux jeter un oeil sur ton fichier, c'est peut-être un truc de rien... je te donnes mon mail en pm.
 
Ton 12 il vient de quoi ?
@+

Reply

Marsh Posté le 21-04-2006 à 17:18:09    

mon 12 est le numero du graphe je ne sais pas comment excel gere ces numeros...c'est lui que je cherche à obtenir!

Reply

Marsh Posté le 21-04-2006 à 19:59:38    

Pour faire activechart tu dois d'abord activer ou sélectionner la feuille contenant le graphe.
ta feuille.select ou .activate
ensuite tu dois activer le graphique
'1 car tu as qu'un unique graphique dans ton tableau
chartobjects(1).activate
msgbox ActiveChart.Name

Reply

Marsh Posté le 24-04-2006 à 19:14:12    

Salut
 
J'ai un message d'erreur avec chartobjects(1).activate : la fonction ou sub n'est pas défini..  
 
merci

Reply

Marsh Posté le 25-04-2006 à 10:56:13    

Chez moi cette macro marche à une condition
le graphique doit être sur la feuille active (dc celle du bouton)
si cpa le cas tu affectes xlwks à ta feuille graphique
 
Private Sub CommandButton1_Click()
Dim xlwks As Excel.Worksheet
 
Set xlwks = ActiveSheet
xlwks.ChartObjects(1).Activate
 
MsgBox ActiveChart.Name
 
End Sub

Reply

Marsh Posté le 25-04-2006 à 12:01:16    

Cool je le récupère! je vais essayer de la changer maintenant, si on peux évidemment!
 
merci

Reply

Marsh Posté le 25-04-2006 à 12:06:50    

En fait si j'ai envie de changer le nom de ce graphique c'est parce que j'ai plein d'onglets et excel attribue des noms bizarrees à ces onglets.
 
J'aimerais réduire la taille de ma macro en renommant tout ces graphiques avec le meme numero car il y a tjs un graphique et un seul par onglet.
 
Merci
 

Reply

Marsh Posté le 25-04-2006 à 12:06:50   

Reply

Marsh Posté le 25-04-2006 à 12:53:29    

s'il y a qu'un graphique ne t'emebet pas à les renomer.
Fait comme dans ma macro, écri pas le nom mais l'index du graphique.
il sera tj égal à 1 s'il y a qu'un graphiqe

Reply

Marsh Posté le 25-04-2006 à 12:59:14    

oui merci bcp!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed