dghaine
Messages postés4Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention11 avril 2006
-
3 avril 2006 à 13:39
dghaine
Messages postés4Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention11 avril 2006
-
11 avril 2006 à 19:55
Bonjour
J'ai créer un script en vb qui copie et colle des données d'un fichier excel source vers un fichier excel cible qui génére un graphique, modifie le nom des feuilles et le titre du graphique puis l'enregistre.
Mon soucis vient de la modofication du titre dans le graphique. Je n'arrive pas à trouver le code qui me permettrait de le faire.
Existe t-il en vbscript le code qui me permettrait de modifier le titre du graphique ?
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 20127 9 avril 2006 à 22:17
Salut ,
mea culpa, tu dois utiliser ActiveChart (je disais sans ActiveChart, car je n'étais pas sûr que, si l'application est invisible, cet objet est valide ou non, j'ai vérifié, il l'est).
Mets cela dans une procédure de test, et testes-la :
Dim xlApp
Dim wkClasseur
Dim wsFeuille
Dim chGraphe
'instancie l'application
Set xlApp = CreateObject("Excel.Application")
'ouvre ton classeur, à adapter
Set wkClasseur = xlApp.WorkBooks.Open("E:\....\DgHaine\chart.xls")
'référence la feuille contenant le graphe
Set wsFeuille = wkClasseur.Sheets("Feuil1")
'référence le graphe
Set chGraphe = wsFeuille.ChartObjects(1)
'active le graphe, sinon, l'objet ActiveChart n'est pas valide
chGraphe.Activate
'et c'est l'objet Activechart qui expose les propriétés tant recherchées
'affiche le titre actuel
msgbox xlApp.ActiveChart.ChartTitle.Characters.Text
'modifie le titre
xlApp.ActiveChart.ChartTitle.Characters.Text="essai"
'affiche la modification
msgbox xlApp.ActiveChart.ChartTitle.Characters.Text
'ferme et libère les références (si tout va bien, il va te proposer d'enregistrer
'les modifications que l'on vient de faire)
wkClasseur.Close
xlApp.Quit
Set xlApp = nothing
à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
dommage que tu ais connu le VBScript avant le VBA (logique, mais dommage), tu aurais moins souffert sinon!
- Ouvres ton classeur Excel (celui qui a un graphique)
- vas dans le menu Outils>>Macros>>Nouvelle macro - changes le titre du graphique
- arrêtes l'enrigistreur de macros
- appuies sur [ALT][F11]
- dans l'arborescence de gauche, cherches le module Module1
- ouvres-le en double-cliquant
et voilà, tu sais maintenant modifier le titre d'un graphique (enfin, il te reste à l'adapter au VBScript, et sans utiliser ActiveChart), et plein d'autres choses en plus!
N'oublies pas d'accepter la réponse, s'il te plait et si elle te plait :) à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
postes le bout de code où tu veux brancher la modification du titre, s'il te plait (juste l'échantillon suffisant), et je te renvoie la bonne écriture ce soir.
à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
Vous n’avez pas trouvé la réponse que vous recherchez ?
dghaine
Messages postés4Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention11 avril 2006 9 avril 2006 à 10:03
Salut rvblog
J'ai pris connaissnace de ta réponse tardivement. Volia le bout de mon code quand je passe par l'enregistreur de macro sous excel et que je souhaite adapter sous vbscript.
Modification en utilisant le menu graphique et option du graphique :
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "essai"
End With
ActiveChart.ChartArea.Select
End Sub
Moification en selectionnant directement le titre , suppression et ecriture du nouveau titre:
ActiveChart.ChartTitle.Select
Selection.Characters.Text = "Essai"
Selection.AutoScaleFont = False
With Selection.Characters(Start:=1, Length:=5).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 22
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ActiveChart.ChartArea.Select
End Sub
Le 2eme est un peu plus long.
Vbscript ne connait pas Hastile, charttitle, chartarea... par contre, il connait activechart, chartobject;