Suivre le cours d'une action, possibilité d'ajouter le montant des parts de différents fonds de placement

Description

Cette source sert à suivre le cours d'une action, avec import automatique depuis la source.
Le Screen dit tout.

Je vous ai laissé mon test complet sur l'action Vinci avec des valeurs et le suivi complet depuis 1987, sachez que si vous suivez une autre action, tout repart de zéro et donc le graphique ne sera pas top, mais le sera au fur et à mesure des valeurs importées.
Sinon, cherchez un historique sur le net au format texte, il suffit de faire 2 colonnes séparés par un point-virgule, avec la date et la valeur.

Source / Exemple :


Public Sub MultiGraphicDrawing(CourbePlacement As String)
    Dim UBval       As Integer:     UBval = UBound(CotationsValues) - 1
    Dim i           As Integer
    Dim StartC      As Integer
    Dim j           As Byte:        j = 1
    Dim MyRowCount  As Byte
    Dim YearAverage As Double
    Dim ValTemp     As Double
    Dim MyPlacement As clsPlacement
    
frmMain.MSChart1.AllowSelections = False    ' Interdit la sélection dans le graphe
frmMain.lstValues.Clear

If ActionInfos.CotationsNumber <= 52 Then
    StartC = 1: MyRowCount = ActionInfos.CotationsNumber
Else
    StartC = ActionInfos.CotationsNumber - 52: MyRowCount = 53
End If

'********************************************************************************
'                           Choix de la courbe à afficher
'********************************************************************************

For Each MyPlacement In ActionInfos
    If CourbePlacement = MyPlacement.NamePlacement Then
        ValTemp = Val(MyPlacement.PlacementValue)
        Exit For
    Else
        ValTemp = 1
    End If
Next MyPlacement

With frmMain.MSChart1
    .chartType = VtChChartType2dLine   ' type de graphe (ici en ligne)
    .ColumnCount = 1                   ' nombre de ligne
    .RowCount = MyRowCount             ' nombre de semaine
    
    For i = StartC To ActionInfos.CotationsNumber
        .Row = j
        .Column = 1
        .RowLabel = CotationsDates(i)                                   ' les dates
        .Data = MyCDbl(CotationsValues(i)) * ValTemp   ' les valeurs
        YearAverage = YearAverage + .Data                               ' cumul des valeurs pour calculer la moyenne annuelle
        j = j + 1
        
        ' incrémentation des valeurs dans la liste de droite dans la form principale
        If frmMain.lstPlacements.Text <> ActionInfos.NameAction Then
            frmMain.lstValues.AddItem CotationsDates(i) & vbTab & .Data
        End If
    Next i
End With

    Set MyPlacement = Nothing

frmMain.ucAverageAction2.Caption = "Moyenne du placement (12 derniers mois) : " & CStr(Format(YearAverage / 53, "#0.00"))

' Pour que le curseur soit différent lorsque la souris passe sur le graphe
frmMain.MSChart1.DoSetCursor = True
frmMain.MSChart1.MousePointer = VtMousePointerCross

'********************************************************************************
'                           Paramètres de la légende
'********************************************************************************

frmMain.MSChart1.ShowLegend = True

'  Texte de la légende
With frmMain.MSChart1.Plot.SeriesCollection(1)
   .LegendText = "Valeur de " & CourbePlacement
End With

With frmMain.MSChart1.Legend
    .Location.LocationType = VtChLocationTypeRight             ' La légende sera au-dessus
    .TextLayout.HorzAlignment = VtVerticalAlignmentCenter      ' Alignement centré
    .VtFont.VtColor.Set 255, 255, 0                            ' Texte jaune.
    .Backdrop.Fill.Style = VtFillStyleBrush                    ' Style de fond
    .Backdrop.Fill.Brush.Style = VtBrushStyleHatched           ' Style de remplissage
    .Backdrop.Fill.Brush.FillColor.Set 159, 0, 255             ' Couleur de remplissage du fond de la
End With                                                       ' légende

'********************************************************************************
'                            Titre et mise en forme
'********************************************************************************

frmMain.MSChart1.TitleText = "Courbe de suivi d'action sur les 50 dernières valeurs"
With frmMain.MSChart1.Title.VtFont
    .Name = "Comic Sans MS"
    .Size = 15
    .Effect = VtFontEffectUnderline
End With
        
' Titre pour l'axe des Y côté gauche
With frmMain.MSChart1.Plot.Axis(1, 1)
     .AxisTitle.VtFont.Size = 14
     .AxisTitle.Visible = True
     .AxisTitle.Text = "Valeurs"
End With

' Virer les nombres côté droit
frmMain.MSChart1.Plot.Axis(2, 1).AxisScale.Hide = True
    
' Titre pour l'axe des X côté bas
With frmMain.MSChart1.Plot.Axis(0, 1)
     .AxisTitle.VtFont.Size = 14
     .AxisTitle.Visible = True
     .AxisTitle.Text = "Date"
End With

'********************************************************************************
'                         Couleurs et traits du graphe
'********************************************************************************
    
' Changer la couleur du graphe
With frmMain.MSChart1.Plot.SeriesCollection(1)
    .DataPoints(-1).Brush.FillColor.Set 255, 0, 0      ' couleur RGB
End With

' Changer la couleur du fond du graphe
With frmMain.MSChart1.Backdrop.Fill
    .Style = VtFillStyleBrush
    .Brush.FillColor.Set 255, 255, 255   'fond blanc
End With
  
' Placer une ligne colorée entre les éléments de la légende de l'axe Y ainsi que la ligne 0
With frmMain.MSChart1.Plot.Axis(VtChAxisIdX, 1)
    .Pen.VtColor.Set 237, 44, 78
End With
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.