| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 
 | Imports System.Data.OleDb
Imports System
Imports System.Windows.Forms.DataVisualization.Charting
 
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim TesDonnées As New DataTable
        TesDonnées.Columns.Add("ANNEE")
        TesDonnées.Columns.Add("BTA")
        TesDonnées.Columns.Add("OTA")
 
        TesDonnées.Rows.Add(2011, 51560, 0)
        TesDonnées.Rows.Add(2012, 119400, 0)
        TesDonnées.Rows.Add(2013, 301000, 49011)
        TesDonnées.Rows.Add(2014, 257400, 407056)
        TesDonnées.Rows.Add(2015, 430100, 156760)
        TesDonnées.Rows.Add(2016, 796765, 194657)
        TesDonnées.Rows.Add(2017, 843941, 944800)
        TesDonnées.Rows.Add(2018, 1538097, 110731)
        TesDonnées.Rows.Add(2019, 1577678, 344345)
 
        '----------------------------------------------------------------
 
        Dim PourL_Affichage As New DataTable
        PourL_Affichage.Columns.Add("ANNEE")
        PourL_Affichage.Columns.Add("BTA")
        PourL_Affichage.Columns.Add("OTA")
 
        Dim Liste_pour_la_correction_des_couleurs As New List(Of Byte)
 
        Chart1.Series.RemoveAt(0)
        Chart1.Series.Add("BTA")
        Chart1.Series.Add("OTA")
 
        Chart1.Series("BTA").XValueMember = "ANNEE"
        Chart1.Series("BTA").YValueMembers = "BTA"
 
        Chart1.Series("OTA").XValueMember = "ANNEE"
        Chart1.Series("OTA").YValueMembers = "OTA"
 
        Chart1.Series(0).ChartType = SeriesChartType.StackedBar
        Chart1.Series(1).ChartType = SeriesChartType.StackedBar
 
        'Superposition des valeurs
        For Each item As DataRow In TesDonnées.Rows
            Dim A As Double = item(1)
            Dim B As Double = item(2)
 
            Dim couleur As Byte = 0
 
            If B > A Then
                B -= A
                PourL_Affichage.Rows.Add(item(0), A, B)
            ElseIf A > B Then
                A -= B
                couleur = 1
                PourL_Affichage.Rows.Add(item(0), B, A)
            Else 'A = B donc
                B = 0
                couleur = 2
                PourL_Affichage.Rows.Add(item(0), A, B)
            End If
 
            Liste_pour_la_correction_des_couleurs.Add(couleur)
        Next
 
        Chart1.DataSource = PourL_Affichage
 
        'j'utilise un ptit thread pour ça car j'ai la flemme d'aller chercher l'event de quand le Chart1 finnit de se charger
        Dim ttt As New Threading.Thread(Sub()
                                            Threading.Thread.Sleep(100)
 
                                            Me.Invoke(Sub()
                                                          'Correction des Couleurs
                                                          For i = 0 To Liste_pour_la_correction_des_couleurs.Count - 1
                                                              If Liste_pour_la_correction_des_couleurs(i) = 0 Then
                                                                  Chart1.Series(0).Points(i).Color = Color.RoyalBlue
                                                                  Chart1.Series(1).Points(i).Color = Color.Orange
                                                              ElseIf Liste_pour_la_correction_des_couleurs(i) = 1 Then
                                                                  Chart1.Series(0).Points(i).Color = Color.Orange
                                                                  Chart1.Series(1).Points(i).Color = Color.RoyalBlue
                                                              Else 'si A et B ont la même valeur je vais collorier la barre en rouge
                                                                  Chart1.Series(0).Points(i).Color = Color.Red
                                                              End If
                                                          Next
                                                      End Sub)
                                        End Sub) : ttt.Start()
 
    End Sub
End Class | 
Partager