surpont1
Messages postés8Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention22 juin 2011
-
21 juin 2011 à 10:26
surpont1
Messages postés8Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention22 juin 2011
-
21 juin 2011 à 10:31
Bonjour,
Je me dirige vers vous car j'aurais besoin d'une petite aide pour mon code.
Je vous explique ma situation. L'entreprise est etrain de migrer vers Office2010 donc je dois adapter un programme écrit en VB6/VBA à l'époque pour Excel2000.
Or j'ai résolu la majorité des problemes en modifiant le code mais là je bute sur un autre problème qui est le traçage de graph.
En effet, je dispose d'un fichier texte avec toutes les valeurs. Dans mon programme, j'ai une fonction qui "lit" ce fichier et qui rempli ma feuille excel.
Ce processus fonctionne correctement.
Ensuite, je sépare les valeurs en plusieurs "blocs de valeurs". Car chaque bloc représente un graphique particulier.
Or c'est à cet endroit où j'ai un petit problème. En positionnement un espion dans le programme pour suivre l'évolution de mes "blocs", je m'aperçois qu'ils se remplisse correctement. Mais dès lors que ma fonction "trace", trace le graphique, j'obtiens une figure qui est à moitié bonne.
Je m'explique, la figure principale est correctement tracé mais pas toutes les autres.
Donc le code correspondant est le suivant :
Charts.Add after:=Sheets(Sheets.Count)
'ActiveChart.ChartArea.AutoScaleFont = False
ActiveWindow.Zoom = 100 'ne marche pas avec win2k et winXP
With ActiveChart
.Location Where:=xlLocationAsNewSheet, Name:=Str$(k) 'nom du graphique=son numéro
'Modification 003-E 20/06/2011
.ChartType = xlXYScatterLines 'pour Excel2010 et xlXYScatter pour Excel2000
.PlotArea.Interior.ColorIndex = xlNone 'à revoir
.Legend.Position = xlLegendPositionRight
.SetSourceData Source:=Sheets("caduq").Range(bloc1), PlotBy:=xlColumns
.SeriesCollection(1).Border.Weight = xlThin
.SeriesCollection.Add Source:=Sheets("caduq").Range(bloc2) 'PlotBy:=xlColumns
.SeriesCollection(2).Border.LineStyle = xlDashDot
.SeriesCollection(2).Border.Weight = xlThin
.HasTitle = True
.ChartTitle.Characters.Text = UCase(Titre)
.ChartTitle.Characters.Font.Size = 12
.ChartTitle.Left = 290
.ChartTitle.Top = 10
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = UCase(Xlegend) & " " & Xunit 'XLEGEND
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = UCase(Ylegend) & " " & Yunit 'Ylegend
End With
'Fin modification
With ActiveChart.SeriesCollection(1)
.Border.ColorIndex = 3
.MarkerStyle = xlNone
End With
With ActiveChart.SeriesCollection(2)
.Border.ColorIndex = 5
.MarkerStyle = xlNone
End With
If N4 > 0 Then
ActiveChart.SeriesCollection.Add Source:=Sheets("caduq").Range(bloc3)
With ActiveChart.SeriesCollection(3)
.Border.ColorIndex = 10
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = 10
.MarkerStyle = xlNone
End With
' Modification 003-C
If N66(k) < 0 Then
With ActiveChart.SeriesCollection(3)
.Border.ColorIndex = 10
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = 10
.MarkerStyle = xlStar
.MarkerSize = 8
' .ApplyDataLabels Type:= _
' xlDataLabelsShowLabel, AutoText:=True, LegendKey:=False
End With
ActiveChart.SeriesCollection(3).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
End If
End If
Donc normalement, je dois avoir 3 séries. Or sur excel, losque je fais "Selectionner des données", il me dise que j'ai 5 séries ... et au lieu d'avoir
=SERIE(;caduq!$A$26:$A$33;caduq!$B$26:$B$33;2) et =SERIE(;caduq!$A$37:$A$56;caduq!$B$37:$B$56;3)
, j'obtiens
=SERIE(;caduq!$A$1:$A$22;caduq!$B$37:$B$57;5) et =SERIE(;caduq!$A$1:$A$22;caduq!$B$37:$B$56;3)
Sachant que les valeur et série qui m'interesse sont dans la 1er citation.
Je ne comprends pas pourquoi il m'ajoute une série 5 ainsi que des plages de valeurs éronnés.
Si quelqu'un a une réponse, je suis preneur.
Si vous avez besoin de plus d'informations sur un point particulier, je serais prêt à les fournir.
Merci.
Tuan-Anh
(PS: je vous mets en PJ ce que j'obtiens au tracé et ce que je dois obtenir ainsi que le tableau de valeurs)