1 2 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
| ' *******************************************************************
' Par : zazaraignée, 2011-01-28
' Pour : un pote du forum Développez.com (VB6)
' But : Utiliser un MsChart sans base de données
' à partir d'un fichier de données (.dat), par exemple.
'
' Ajouter au projet les composants MsFlexGrid et MsChart.
' Les objets utilisés et leurs noms
' Form : frmGraphEtGrille
' MsFlexGrid : mfgGrilleDeDonnees
' msChart : mchGraphique
' Command : cmdFermer
' *******************************************************************
Option Explicit
Private tblLigneData() As String ' pour lire fichier texte
Private tblDonnees(0 To 12, 0 To 3) As String ' pour construire le graphique
Private Sub Form_Load()
SetGrille ' Formate le FlexGrid (lignes, colonnes, entêtes...)
ChargerFichierTxt ' Charge le fichier .txt dans un tableau
AfficherDonnees ' Affiche les données dans le FlexGrid
TracerGraphique ' Trace le graphique à partir du tableau
End Sub
Private Sub SetGrille()
'Propriétés de la MsFlexGrid
Dim i As Integer
With mfgGrilleDeDonnees
.AllowBigSelection = False
.FixedCols = 1
.FixedRows = 1
.Cols = 4
.Rows = 13
.ColWidth(0) = .ColWidth(0) * 1.25
For i = 0 To 3
.Row = 0: .Col = i
.CellFontBold = True
.CellAlignment = flexAlignCenterCenter
.Row = i: .Col = 0
.CellFontBold = True
Next
For i = 4 To 12
.Row = i
.CellFontBold = True
Next
End With
End Sub
Private Sub ChargerFichierTxt()
Dim numFic As Integer, nomFic As String, i As Integer
Dim strLigneData As String
numFic = FreeFile
nomFic = App.Path & "\donnees.txt"
Open nomFic For Input As #numFic
i = 0
Do Until EOF(numFic)
Line Input #numFic, strLigneData
tblLigneData() = Split(strLigneData, ";")
Debug.Print UBound(tblLigneData)
tblDonnees(i, 0) = tblLigneData(0)
tblDonnees(i, 1) = tblLigneData(1)
tblDonnees(i, 2) = tblLigneData(2)
tblDonnees(i, 3) = tblLigneData(3)
i = i + 1
Loop
Close #numFic
End Sub
Private Sub AfficherDonnees()
Dim i As Integer
With mfgGrilleDeDonnees
For i = 0 To 12
.TextMatrix(i, 0) = tblDonnees(i, 0)
.TextMatrix(i, 1) = tblDonnees(i, 1)
.TextMatrix(i, 2) = tblDonnees(i, 2)
.TextMatrix(i, 3) = tblDonnees(i, 3)
Next
End With
End Sub
Private Sub TracerGraphique()
With mchGraphique
.AllowSelections = False
.ChartData = tblDonnees
End With
End Sub
Private Sub cmdFermer_Click()
Unload Me
End Sub |
Partager