talla95370
Messages postés4Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention 9 avril 2009
-
8 avril 2009 à 18:13
talla95370
Messages postés4Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention 9 avril 2009
-
9 avril 2009 à 09:44
Bonjour,
Je souhaite avant tout m'excuser si mon post n'est pas au bon endroit. J'ai essayé de le placer au mieux :)
Mon problème est le suivant :
Tout d'abord je créé un onglet s'il n'est pas déjà fait, puis sur 2 colonnes (A= Heure et B= Cours) j'ai des données qui se mettent à jour toutes les minutes.
Je souhaiterai mettre au point un graph qui tienne compte des dernières données, donc toutes les minutes.
J'ai su le faire via excel, le souci étant qu'en passant par l'enregistreur ça plante :'(
J'ai du mal à voir pourquoi et j'ai pas mal cherché sur le net mais pas de réponse.
1] Je créé l'onglet et le nom de la plage de donnée
Cette fonction marche correctement.
Public dday, mmonth As Variant
Private Function add_fle()
If Day(Now()) < 10 Then
dday = "0" & Day(Now())
Else: dday = Day(Now())
End If
If Month(Now()) < 10 Then
mmonth = "0" & Month(Now())
Else: mmonth = Month(Now())
End If
If Sheets(Sheets.Count).Name <> dday & "-" & mmonth Then
Sheets.Add , Sheets(Sheets.Count)
a = dday & "-" & mmonth
ActiveSheet.Name = a
Range("A1").Value = "HEURE"
Range("B1").Value = "COURS"
ActiveWorkbook.Names.Add Name:="Cours" & dday & mmonth, RefersTo:="=DECALER('" & a & "'!$B$1,NBVAL('" & a & "'!$B:$B)-1,,-NBVAL('" & a & "'!$B:$B)+1)"
ActiveWorkbook.Names.Add Name:="Heure" & dday & mmonth, RefersTo:="=DECALER('" & a & "'!$A$1,NBVAL('" & a & "'!$A:$A)-1,,-NBVAL('" & a & "'!$A:$A)+1)"
End If
End Function
2] Je mets à jour les données
Ca fonctionne aussi
3] Je dessine le graph sur la nouvelle feuille :
Private Function Do_Graph()
With ActiveWorkbook.Worksheets(Sheets.Count)
Set graph = .ChartObjects.Add(200, 100, 500, 300)
End With
a = dday & mmonth
With graph.Chart
.SetSourceData Worksheets(Sheets.Count).Range("A1:B1")
.HasTitle = True
.ChartTitle.Text = "Cours du CAC 40 Intraday"
.ChartType = xlLineMarkers
.SeriesCollection(1).Formula = "=CAC.xls!Heure" & a
End With
End Function
C'est là que le plantage a lieu.
J'aimerai paramétrer la plage variable dans les données source du graph, mais ça ne marche pas :'(
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 avril 2009 à 18:42
Salut
Catégorie modifiée --> Mémorise pour la prochaine fois
Si ça plante, il doit y avoir un numéro d'erreur et une description : laquelle ?
Sur quelle ligne ?
Dans tes premières lignes, tu définis un nom à des plages appartenant à une feuille (si j'ai bien compris)
Name:="Cours" & dday & mmonth
Dans Do_Graph, je ne vois nulle part de référence à la feuille ni au nom précédemment défini.
Faudrait peut-être commencer par là
Si j'ai bien compris, ton Chart est défini dans la dernière feuille :
With ActiveWorkbook.Worksheets(Sheets.Count)
puis tu lui dit d'aller chercher les données sur cette même feuille, et dans des deux seules cellules A1 et B1
.SetSourceData Worksheets(Sheets.Count).Range("A1:B1")
--> Sélectionner la bonne feuille source de données
--> Remplacer "A1:B1" par le nom de la plage
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
talla95370
Messages postés4Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention 9 avril 2009 9 avril 2009 à 09:29
Hello Jack et merci pour ton aide.
Toutefois ça ne fonctionne pas malgré les modifs.
En effet le graph se place automatiquement sur la dernière feuille et les données y sont également.
Le problème avec la plage c'est qu'elle croît tout au long de la journée (1 feuille / jour), j'ai tester en sélectionnant les colonnes A et B mais ça ne fonctionne pas mieux.
Le problème doit venir de là : .SeriesCollection(1).Formula = "=CAC.xls!Heure" & a
J'ai l'impression qu'il n'autorise pas les noms variable. J'ai essayé avec .SeriesCollection(1).XValues et Formula ça plante aussi.
talla95370
Messages postés4Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention 9 avril 2009 9 avril 2009 à 09:44
Euh image non insérée ;)
En résumé, dans l'onglet SERIE des données sources du graph, il m'enregistre en Valeurs la plage en "dur" alors que j'aimerai y insérer le nom de ma série qui est variable.