Probleme de trçage de graph sur Excel 2010

surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011 - 21 juin 2011 à 10:26
surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 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)


007

2 réponses

surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011
21 juin 2011 à 10:30
Bon graphique :
Mauvais graphique :



007
0
surpont1 Messages postés 8 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 22 juin 2011
21 juin 2011 à 10:31
007
0
Rejoignez-nous