Ajouter un graphique à un document Microsoft avec des composants Web Office

Ajouter un graphique à un document Microsoft avec des composants Web Office / les fenêtres

N'est-il pas étonnant de voir comment quelque chose d'aussi simple que de créer un graphique peut parfois sembler aussi compliqué? Que vous utilisiez Excel, Word, Powerpoint ou Access, il serait parfois utile d'insérer simplement un graphique rapide avec un tas de données sans avoir à faire beaucoup de configuration et de déconner.

Dans cet article, je vais vous montrer comment utiliser un objet VBA très pratique et simple de Microsoft Office Web Components qui vous permet d'insérer un graphique directement dans un document, une présentation ou tout autre élément dans lequel vous pouvez créer du code VBA pour l'exécuter. Cela peut également inclure des produits non Microsoft dotés d’un back-end VBA, ce que beaucoup font.

Dans cet exemple, je vais vous montrer comment activer le mode conception dans votre programme (dans ce cas, nous utiliserons Microsoft Word), incorporer l'objet graphique dans votre projet, puis comment écrire le code qui le remplit. avec des données.

Dans certains de mes articles précédents de VBA, quelques-uns d'entre vous ont mentionné que la tâche à accomplir était un peu trop compliquée pour quiconque n'avait jamais écrit de code auparavant. J'espère qu'après avoir lu cet article, vous serez motivé pour tenter votre chance avec VBA. Le code inclus ici est très simple et facile à écrire. L'intégration de ce tableau est un excellent moyen de vous mettre la main sur VBA si vous ne l'avez jamais essayé auparavant..

Si vous connaissez VBA, il s'agit d'un excellent outil pour commencer à intégrer des graphiques rapides à vos projets avec beaucoup moins d'effort que jamais..

Activation du mode de conception

Dans cet exemple, je voulais créer un document rapide avec un graphique incorporé qui affiche les données du mois en cours de mon budget ainsi que la moyenne mensuelle des dépenses de l'exercice à ce jour..

Dans cet exemple, je vais placer ces valeurs codées en dur dans un “tableau” dans le code VBA, mais vous pouvez utiliser diverses techniques pour charger ces variables de tableau (un tableau est simplement une variable contenant une liste de valeurs) à partir d'autres sources, comme un tableur externe ou même un formulaire dans lequel vous entrez les valeurs manuellement tous les mois.

Pour savoir comment importer des données dans Word à partir d'Excel, consultez mon article Intégration de données Excel dans un document Word Intégration de données Excel dans un document Word Au cours de votre semaine de travail, vous êtes probablement souvent en train de copier et coller des informations d'Excel dans Word ou inversement. C'est ainsi que les gens produisent souvent des rapports écrits… En savoir plus sur le sujet. Pour les besoins de cet article, nous allons nous concentrer sur la création du graphique pour afficher les données..

Maintenant que j'ai commencé mon document, je veux entrer dans le code. Dans Word ou Excel, vous le faites en cliquant sur “Fichier”, “Les options” puis cliquez sur l'option Personnaliser le ruban. Sur le côté droit des options, vous verrez le “Personnaliser le ruban” colonne, et dans la “Onglets principaux” champ vous devriez voir “Développeur” décoché. Cochez cette case.

De retour sur votre document, vous devriez maintenant voir le “Développeur” élément de menu disponible. Dans ce menu, vous trouverez le “Mode de conception” bouton.

Cliquez sur Mode Création, puis sur l'icône de ce dossier / outils pour “Outils hérités”, puis dans le coin inférieur droit de la boîte de dialogue, sous Contrôles ActiveX, cliquez sur le bouton “Plus de contrôles” bouton.

Faites défiler la liste des commandes disponibles jusqu'à ce que vous arriviez à “Microsoft Office Chart xx.x”. Si Microsoft Office est installé sur votre ordinateur, ce contrôle sera probablement disponible..

Une fois que vous avez inséré le contrôle dans votre document, vous le verrez apparaître sous la forme d’une boîte qui dit: “Composants Web Microsoft Office” à l'intérieur. Ceci est essentiellement votre graphique vide, prêt à afficher vos données.

L'étape suivante consiste à écrire le code qui va configurer votre type de graphique et afficher les données. Si vous souhaitez que le processus soit manuel, vous pouvez placer sur le document un bouton permettant de charger les données dans le graphique, mais dans mon cas, je souhaitais que tout soit entièrement automatisé. Au moment où j'ouvre le document, je voulais qu'il exécute le script qui charge le graphique afin que vous puissiez le faire dans le code (cliquez sur le bouton Visual Basic pour accéder à l'éditeur de code) et en sélectionnant l'objet Document. “Ouvrir” un événement.

Cela placera automatiquement une fonction vide appelée “Document_Open ()” dans votre code. Dans cette fonction, vous voulez coller le code suivant.

Private Sub Document_Open ()  Dim i As Integer  Dim oChart  Dim oSeries1  Dim oSeries2  'Créer des tableaux pour les valeurs x et les valeurs y  Dim xValues ​​As Variant, yValues1 As Variant, yValues2 As Variant  xValues ​​= Array ("Facture électrique", "Hypothèque", "Facture téléphonique", _  "Facture de chauffage", "Epicerie", _  "Essence", "Vêtements", "Shopping")  yValues1 = Array (124,53, 1250,24, 45,43, 253,54, 143,32, 259,85, 102,5, _  569.94)  yValues2 = Array (110, 1250, 50, 200, 130, 274, 95, _  300)
 

Cette section de code crée trois tableaux. La première (xValues) est en gros votre liste de descriptions de l’axe des x pour chaque élément de données. Dans mon cas, je crée un graphique à barres avec yValues1, mais vous pouvez également créer un graphique à lignes. Je vais vous montrer comment faire cela avec yValues2. Maintenant, collez également le segment de code suivant.

 Avec ThisDocument.ChartSpace1  .Clair  .Rafraîchir  Définir oChart = .Charts.Add  oChart.HasTitle = True  oChart.Title.Caption = "Chiffres du budget mensuel vs moyen"
 

Cette section de code crée crée réellement le graphique lui-même dans votre “chartspace” récipient. Votre graphique ne contient aucune donnée à ce stade, mais vous pouvez définir le titre du graphique ainsi que la légende à l'aide de quelques commandes. Il est maintenant temps d'ajouter les données. Collez le code suivant sous le code que vous avez déjà collé pour le faire..

Définir oSeries1 = oChart.SeriesCollection.Add  Avec oSeries1  .Légende = "Ce mois-ci"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues1  .Type = chChartTypeColumnClustered  Terminer par  'Ajouter une autre série au graphique avec les valeurs x et les valeurs y  'des tableaux et définir le type de série à un graphique en courbes  Définir oSeries = oChart.SeriesCollection.Add  Avec oSeries  .Légende = "Dépenses moyennes"  .SetData chDimCategories, chDataLiteral, xValues  .SetData chDimValues, chDataLiteral, yValues2  .Type = chChartTypeLineMarkers  Terminer par

Le code ci-dessus crée deux séries à afficher dans votre graphique. La première série configure les données à afficher à l'intérieur de l'objet graphique en tant que “ColumnClustered” format, et la deuxième série est configurée pour afficher comme un “TypeLineMarkers” format. Cela affichera les deux ensembles de valeurs sur le même graphique, mais il utilisera différents types de graphique, ce qui peut être un moyen très intéressant d'afficher et de comparer plusieurs ensembles de données..

Maintenant que les données sont ajoutées, il ne reste plus qu'à ranger les axes et à finir les détails du graphique..

 'Formater les axes de valeur
 oChart.Axes (chAxisPositionLeft) .NumberFormat = "$ #, ## 0"  oChart.Axes (chAxisPositionLeft) .MajorUnit = 1000  'Afficher la légende au bas du graphique  oChart.HasLegend = True  oChart.Legend.Position = chLegendPositionBottom
 Terminer par
End Sub

Le code ci-dessus formate les nombres sur l’axe de gauche pour les afficher au format dollar numérique. La ligne suivante configure la limite maximale de l'axe vertical. Étant donné que je sais que chaque élément ne dépassera pas 1 000 dollars, c’est ce que j’ai défini comme limite maximale pour l’axe des y.

Enregistrez le document, fermez-le, rouvrez-le et le tour est joué - votre graphique est chargé automatiquement avec les données de vos deux tableaux..

Maintenant que vous savez insérer les graphiques et y charger automatiquement des données, il suffit de penser aux possibilités. Tout ce que vous avez à faire est de placer toutes les données externes dans ces baies - peut-être une feuille de calcul Excel, peut-être une base de données Access ou autre chose - et tout à coup ce document devient une fenêtre très dynamique et précieuse des données stockées.

Ce n'est que la pointe de l'iceburg avec les objets MS Office Web Components. J'ai commencé avec les charts parce que je trouve cette fonctionnalité la plus excitante. Ajouter des graphiques à n'importe quelle application VBA de votre choix avec un script très court est très utile et très puissant.

Si vous êtes tout au sujet des graphiques, pourquoi ne pas essayer cet objet graphique? Connaissez-vous d'autres objets de cartographie utiles pour VBA? Comment intégrez-vous des données dans vos applications? Partagez vos pensées et expériences dans la section commentaires ci-dessous.

Crédit image: Graphique à barres de Tablet Finance via Shutterstock

En savoir plus sur: Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Programmation Visual Basic.