Utilisation du composant Web Chart avec Visual Basic

Numéro d'article: 469351 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F19351
Agrandir tout | Réduire tout

Résumé

Cet article présente l'utilisation du composant Web Office Chart sur une
feuille Visual Basic pour visualiser des données liées. Plus
spécifiquement, le code de cet article décrit comment effectuer les
opérations suivantes :

Utiliser des données tableaux pour un graphique.


Utiliser un jeu d'enregistrements ADO pour des données de graphique.


Utiliser des données de feuille de calculs pour un graphique.


Créer plusieurs diagrammes dans un Chartspace unique.


Créer un graphique de combinaison.

-et-


Formater différents composants de graphiques tels qu'axes, étiquettes de
données, séries, zones de tracé, etc.


INFORMATIONS COMPLEMENTAIRES :

Étapes de création d'un échantillon
Démarrez un nouveau projet EXE standard dans Visual Basic. Form1 est créé
par défaut.


Cliquez sur Composants dans le menu Projet. Sélectionnez Microsoft Office
Web Components 9.0 et cliquez sur OK.


Ajoutez les contrôles suivants à la feuille, avec les propriétés
indiquées :

Type Nom Libellé
ChartSpace ChartSpace1 -
DataSourceControl DataSourceControl1 -
CommandButton Command1 Utiliser des tableaux
CommandButton Command2 Utiliser un jeu d'enregistrements ADO
CommandButton Command3 Utiliser une feuille de calculs


REMARQUE : Dimensionnez le contrôle ChartSpace pour qu'il occupe le plus
grand espace possible sur la feuille tout en autorisant néanmoins la
présence d'autres contrôles.


Ajoutez le code suivant au module de Form1 :


Private Sub Command1_Click()

'Créé des tableaux pour les valeurs x et y
Dim xValues As Variant, yValues1 As Variant, yValues2 As Variant
xValues = Array("Beverages", "Condiments", "Confections", _
"Dairy Products", "Grains & Cereals", _
"Meat & Poultry", "Produce", "Seafood")
yValues1 = Array(104737, 50952, 78128, 117797, 52902, 80160, 47491, _
62435)
yValues2 = Array(20000, 15000, 36000, 56000, 40000, 18000, 20000, _
33000)

'Crée un nouveau graphique
Dim oChart As WCChart
ChartSpace1.Clear
ChartSpace1.Refresh
Set oChart = ChartSpace1.Charts.Add

'Ajoute un titre au graphique
oChart.HasTitle = True
oChart.Title.Caption = "Sales Per Category"

'Ajoute une série au graphique avec les valeurs x et y des
'tableaux et définit le type de série comme graphique de colonne
Dim oSeries As WCSeries
Set oSeries = oChart.SeriesCollection.Add
With oSeries
.Caption = "1995"
.SetData chDimCategories, chDataLiteral, xValues
.SetData chDimValues, chDataLiteral, yValues1
.Type = chChartTypeColumnClustered
End With

'Ajoute une autre série au graphique avec les valeurs x et y des
'tableaux et définit le type de série comme graphique de ligne
Set oSeries = oChart.SeriesCollection.Add
With oSeries
.Caption = "1996"
.SetData chDimCategories, chDataLiteral, xValues
.SetData chDimValues, chDataLiteral, yValues2
.Type = chChartTypeLineMarkers
End With

'Ajoute un axe de valeurs à droite du graphique pour la deuxième
'série
oChart.Axes.Add oChart.Axes(chAxisPositionLeft).Scaling, _
chAxisPositionRight, chValueAxis

'Formate les axes de valeurs
oChart.Axes(chAxisPositionLeft).NumberFormat = "$#,##0"
oChart.Axes(chAxisPositionRight).NumberFormat = "0"
oChart.Axes(chAxisPositionLeft).MajorUnit = 20000
oChart.Axes(chAxisPositionRight).MajorUnit = 20000

'Affiche la légende en bas du graphique
oChart.HasLegend = True
oChart.Legend.Position = chLegendPositionBottom

End Sub

Private Sub Command2_Click()

'Définit le DataSourceControl pour le Chartspace
Dim rsd As RecordsetDef
DataSourceControl1.ConnectionString = _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=C:\Program Files\Microsoft Visual Studio\VB98\nwind.mdb"
Set rsd = DataSourceControl1.RecordsetDefs.AddNew( _
"Select * from [Category Sales for 1995]", 3)
With ChartSpace1
.Clear
.Refresh
.DataSource = DataSourceControl1
.DataMember = rsd.Name
End With

'Ce Chartspace contiendra 2 graphiques. Définit la disposition
'afin que les graphiques soient positionnés horizontalement
ChartSpace1.ChartLayout = chChartLayoutHorizontal

'Crée un nouvel histogramme à partir de la requête
Dim oBarChart As WCChart
Set oBarChart = ChartSpace1.Charts.Add
With oBarChart
.Type = chChartTypeBarClustered
.SetData chDimCategories, 0, 0 'Premier champ = catégories
.SetData chDimValues, 0, 1 'Deuxième champ = valeurs

'Formate l'axe des valeurs pour l'histogramme afin qu'il
'affiche les valeurs par milliers (par ex., 45 pour 45000) et
'par incrément de 25000. Retire les lignes de grille.
With .Axes(chAxisPositionBottom)
.NumberFormat = "0,"
.MajorUnit = 25000
.HasMajorGridlines = False
End With

'Change la couleur de la série et de la zone de tracé
.SeriesCollection(0).Interior.Color = RGB(150, 0, 150)
.PlotArea.Interior.Color = RGB(240, 240, 10)
End With

'Crée un nouveau graphique à secteurs séparés à partir de la requête
Dim oPieChart As WCChart
Set oPieChart = ChartSpace1.Charts.Add
With oPieChart
.Type = chChartTypePie
.SetData chDimCategories, 0, 0 'Premier champ = catégories
.SetData chDimValues, 0, 1 'Deuxième champ = valeurs
.SeriesCollection(0).Explosion = 20

'Ajoute une légende sous le graphique à secteurs
.HasLegend = True
.Legend.Position = chLegendPositionBottom

'Ajoute un titre au graphique
.HasTitle = True
.Title.Caption = "Sales by Category for 1995"
.Title.Font.Bold = True
.Title.Font.Size = 11

'Largeur du graphique = 50 % de la largeur de l'histogramme
.WidthRatio = 50

'Affiche les libellés de données des tranches en tant que
'pourcentages
With .SeriesCollection(0).DataLabelsCollection.Add
.HasValue = False
.HasPercentage = True
.Font.Size = 8
.Interior.Color = RGB(255, 255, 255)
End With

End With

End Sub

Private Sub Command3_Click()

'Ajoute dynamiquement un contrôle feuille de calculs à la feuille
Dim oSheet As Spreadsheet
Me.Controls.Add "OWC.Spreadsheet", "Sheet"
Set oSheet = Me!Sheet

'Remplit la feuille avec des données
With oSheet
.Range("A1:A10").Formula = "=Row()"
.Range("B1:B10").Formula = "=A1^2"
.Range("A12").Formula = "=Max(A1:A10)"
.Range("B12").Formula = "=Max(B1:B10)"
End With

'Crée un nuage de points en utilisant les données de la feuille de
'calculs
Dim oChart As WCChart
With ChartSpace1
.Clear
.Refresh
.DataSource = oSheet.object
Set oChart = .Charts.Add
oChart.Type = chChartTypeScatterSmoothLineMarkers
oChart.SetData chDimXValues, 0, "a1:a10"
oChart.SetData chDimYValues, 0, "b1:b10"
End With

With oChart
'Affiche les titres des axes et définit
'les principales unités pour les axes
With .Axes(chAxisPositionBottom)
.HasTitle = True
.Title.Caption = "X"
.Title.Font.Size = 8
.MajorUnit = 1
End With
With .Axes(chAxisPositionLeft)
.HasTitle = True
.Title.Caption = "X Squared"
.Title.Font.Size = 8
.MajorUnit = 10
End With

'Définit les valeurs maximales et minimales des axes
.Scalings(chDimXValues).Maximum = oSheet.Range("A12").Value
.Scalings(chDimXValues).Minimum = 1
.Scalings(chDimYValues).Maximum = oSheet.Range("B12").Value

'Change les styles de marqueur et de ligne pour la série
With .SeriesCollection(0)
.Marker.Style = chMarkerStyleDot
.Marker.Size = 6
.Line.Weight = 1
.Line.Color = RGB(255, 0, 0)
End With
End With

'Supprime la feuille de calculs
Me.Controls.Remove "Sheet"

End Sub
REMARQUE : Il pourra être nécessaire de modifier la chaîne de connexion
dans l'événement Command2_Click afin que ce dernier désigne correctement
le chemin de NWIND.MDB, installée par défaut dans le répertoire de Visual
Basic :
DataSourceControl1.ConnectionString = _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=C:\Program Files\Microsoft Visual Studio\VB98\nwind.mdb"
Cliquez sur Propriétés dans le menu Projet. Sélectionnez l'onglet Créer,
désactivez Remove Information about Unused ActiveX Controls et cliquez
sur OK.


Appuyez sur la touche F5 pour exécuter le programme.


Cliquez sur le bouton Utiliser des tableaux. Un graphique de combinaison
avec deux axes de valeurs est créé. Ce graphique utilise des données de
tableaux.


Cliquez sur le bouton Utiliser un jeu d'enregistrements ADO. Deux
graphiques sont créés dans le Chartspace : un histogramme et un graphique
à secteurs séparés avec des étiquettes de données. Le Chartspace utilise
un DataSourceControl pour ses données, et le contrôle DataSourceControl
fait référence à une base de données Access par l'intermédiaire d'une
connexion ADO.


Cliquez sur le bouton Utiliser une feuille de calculs. Un nuage de points
utilisant un contrôle Spreadsheet avec des formules dans les cellules de
données est créé. Ce contrôle est ajouté et supprimé dynamiquement lors
de l'exécution.



MOTS-CLES :

La liste de(s) mot(s) suivant(s) permet une recherche plus efficace de
cette fiche technique : owc chart space charting graph graphing
kbVBp600 kbGrpDSO kbOffice2000 kbDSupport


Propriétés

Numéro d'article: 469351 - Dernière mise à jour: mardi 24 février 2004 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office 2000 Édition Standard
  • Composants Web Microsoft Office
Mots-clés : 
kbhowto kbmacro kbreadme kbcode kbusage KB469351
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com