Réaliser des traits sur un graphique

Masmeta

XLDnaute Nouveau
bonjour,

J'ai un problème que je n'arrive pas à résoudre depuis plusieurs semaine.

je trace une courbe dynamique suivant des durées et des valeurs comprise entre 0 et 150. Cela correspond à une évolution d'état. Pour marqué des étapes importantes , je trace des traits verticaux. Ces étapes se trouvent dans un fichier txt que Excel lit.

Mon problème est que les traits verticaux ne sont pas au bonnes abscisses.

Pour l'instant je fais ceci pour tracer ses traits
Code:
 'Sauvegarde des séquences
        ActiveWorkbook.Worksheets("LISTE").Activate
        nbL = WorksheetFunction.CountA(Range("A:A")) - 1
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set SeqTxt = fs.OpenTextFile("Mon Path", 1)
        Seq = Array(SeqTxt.readline, SeqTxt.readline, SeqTxt.readline, SeqTxt.readline, SeqTxt.readline, SeqTxt.readline, Cells(nbL, 1).Text)
        
        'Mise en forme des séquences nulles
        For i = 0 To 6
            If Seq(i) = "0000000000" Then
                Seq(i) = "31/12/9999 23:59:59"
            End If
                
        Next i
        'Recherche de l'endroit à placer la séquence
        While Trim(Cells(numL, 1).Value) <> ""
            If (CDate(Cells(numL, 1).Value) > CDate(Seq(Seqencours)) And (Seqencours < 6)) Then
                
                'Défini la coordonnée en pixel du point
                ActiveWorkbook.Worksheets("GRAPHE").Activate
                ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Select
                
                LgPo = ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.PlotArea.InsideWidth
                Xzero = ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.Axes(xlValue).Left
                pas = (LgPo - (0.08 * LgPo) / nbL)
                pt = (pas * (numL - 2)) + Xzero '-2 permet le décalage
                'Trace la droite de séquence
                DebX = pt
                FinX = pt
                DebY = ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.PlotArea.Top + 3
                FinY = ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.Axes(xlCategory).Top
                
                
                ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.PlotArea.Select
                ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.Shapes.AddLine(DebX, DebY, FinX, FinY).Select
                'Mise en place du texte
                DebX = DebX - 7
                ActiveWorkbook.Worksheets("GRAPHE").ChartObjects(1).Chart.Shapes.AddTextbox(msoTextOrientationHorizontal, DebX, 25, 18, 14).Select
                Selection.Characters.Text = LabelSeq(Seqencours)    'Sequence
                Selection.AutoScaleFont = False
                With Selection.Characters(Start:=1, Length:=2).Font
                    .Name = "Arial"
                    .FontStyle = "Normal"
                    .Size = 10
                    .Strikethrough = False
                    .Superscript = False
                    .Subscript = False
                    .OutlineFont = False
                    .Shadow = False
                    .Underline = xlUnderlineStyleNone
                    .ColorIndex = xlAutomatic
                End With
                Seqencours = Seqencours + 1 'changement de sequence
            End If
            
            If (numL <= nbL + 1) Then 'changement de point
                numL = numL + 1
            End If
            ActiveWorkbook.Worksheets("LISTE").Activate
        Wend
J'aimerais savoir :

1. Comment obtenir la bonne coordonnée d'abscisse suivant le pas du graphique?
2. Si impossible comment obtenir la coordonnée d'abscisse du point précédent ll'étape à tracer?
3.Comment on utilise les Sub?

merci de votre aide
cordialement
 

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia