Publicité

créer un graphiqueNe serait-il pas agréable d'avoir la possibilité d'ouvrir simplement une feuille de calcul Excel ou un document Word, et sans avoir à faire quoi que ce soit à tous, les données sont lues directement à partir d'un fichier de données texte ou CSV et se chargent directement dans un graphique intégré à votre feuille de calcul ou Word document? Il s'agit d'une forme d'automatisation utilisant les produits Office, car s'il est possible d'automatiser la cartographie des données dans Office, il suffit de penser aux possibilités. Vous pouvez automatiquement charger des données dans un graphique pour un rapport que vous préparez pour votre patron - aucune saisie de données requise. Ou vous pouvez charger des données dans un graphique directement dans un e-mail dans Outlook.

La technique pour y parvenir consiste à installer le complément Office Web Components. De plus, il vous suffit de configurer quelques éléments dans l'application Office que vous souhaitez utiliser pour importer les données, et vous êtes prêt à commencer à automatiser votre travail de création de rapports. J'ai couvert certains des éléments que nous allons utiliser dans cet article dans le précédent

instagram viewer
Articles VBA Comment créer votre propre application simple avec VBAVous voulez savoir comment créer votre propre application VBA pour résoudre des problèmes? Utilisez ces conseils pour créer votre propre logiciel VBA. Lire la suite ici à MakeUseOf. Quelques-unes d'entre elles comprenaient la transmission de données entre applications avec le presse-papiers Passez toutes les informations entre les applications VBA à l'aide du presse-papiersL'une des parties les plus frustrantes du travail avec VBA dans des applications spécifiques, c'est qu'il n'est pas toujours facile de faire dialoguer deux applications. Vous pouvez essayer des transactions très rapides ... Lire la suite , exportation Tâches Outlook vers Excel Comment exporter vos tâches Outlook vers Excel avec VBAQue vous soyez ou non un fan de Microsoft, une bonne chose qui peut être dite sur les produits MS Office, au moins, est la facilité d'intégration de chacun d'entre eux ... Lire la suite et envoi Emails d'un Excel Comment envoyer des e-mails à partir d'une feuille de calcul Excel à l'aide de scripts VBANotre modèle de code vous aidera à configurer des e-mails automatisés à partir d'Excel en utilisant des objets CDO (Collaboration Data Objects) et des scripts VBA. Lire la suite scénario.

Je vais vous montrer comment combiner les composants Web Office avec des scripts de fichiers texte pour créer un flux de données transparent et automatisé à partir d'un fichier texte plat sur votre ordinateur vers votre produit Office (dans notre cas Exceller). Vous pouvez utiliser cette même technique - avec quelques petites modifications - dans Word, Outlook ou même PowerPoint. Tout produit Office (ou tout autre produit d'ailleurs) qui a un back-end VBA pour les développeurs, vous permettra d'utiliser cette technique.

Importer et créer un graphique à partir de fichiers de données

Avant de pouvoir créer un graphique à partir de fichiers de données, vous devez d'abord activer quelques éléments. Dans cet exemple, je vais vous montrer comment activer ces fonctionnalités dans Excel, mais le processus est presque identique dans tous les autres produits Office.

Tout d'abord, avant de pouvoir effectuer un développement VBA, vous devez activer l'onglet développeur dans la barre d'outils (si ce n'est déjà fait). Pour ce faire, il suffit d'aller dans le menu Options, de cliquer sur «Personnaliser le ruban» et d'activer l'onglet «Développeur».

créer un graphique

De retour dans Excle, vous verrez maintenant apparaître «Developer» dans les menus. Cliquez dessus et cliquez sur «Design Mode». Cliquez ensuite sur «Afficher le code» pour voir l'éditeur VBA.

Comment créer un graphique à partir de fichiers de données brutes dans n'importe quel produit Office VBAChart21

Dans l'éditeur, vous devez activer les références dont vous aurez besoin pour le code que je vais vous donner à travailler. Assurez-vous d'avoir installé le complément Office Web Components avant de procéder, sinon l'objet Microsoft Chart ne sera pas disponible.

créer un graphique
Cliquez sur Outils, puis sur Références, et vous verrez une liste de toutes les références disponibles sur votre système. Si vous ne savez pas ce que c'est, les références sont essentiellement des bibliothèques de code et d'objets que vous pouvez insérer dans votre propre projet. Ceux-ci vous permettent de faire des choses vraiment cool, selon la référence que vous activez. Si vous venez d'installer les composants Web Office dans votre système, vous devrez l'ajouter en tant que nouvelle bibliothèque, cliquez sur le bouton Parcourir pour rechercher le fichier .dll correct.

créer un graphique

Si vous avez installé Office Web Components, le fichier DLL s'appelle OWC11.dll et il est stocké dans c: \ program files \ common files \ microsoft shared \ web components \ 11 \
créer un graphique

Cochez la case de la référence «Microsoft Office Web Components 11.0» et n'oubliez pas de sélectionnez également «Microsoft Scripting Runtime», qui vous donnera accès à la lecture ou à l'écriture à partir des données des dossiers.

Maintenant que vous avez ajouté la référence, il est temps d'ajouter le graphique réel à votre feuille. Dans Excel, vous pouvez ajouter des contrôles en cliquant sur "Insérer" dans le menu Développeur et en cliquant sur la petite icône d'outils dans le coin sous "Contrôles ActiveX".

Comment créer un graphique à partir de fichiers de données brutes dans n'importe quel produit Office VBAChart6

Faites défiler jusqu'à «Microsoft Office Chart 11.0» et cliquez sur OK.
créer un graphique gratuitement

On se met enfin aux affaires. Voici à quoi ressemble le graphique du composant Web MS intégré dans une feuille de calcul. Il aura le même aspect intégré dans un document Word ou autre chose.

créer un graphique gratuitement
Donc, dans le cas d'Excel, je veux que le graphique charge instantanément les données du fichier de données lors de l'ouverture du fichier de classeur. Pour ce faire, vous allez dans l'éditeur de code en cliquant sur «Afficher le code» dans le menu Développeur, et double-cliquez sur le classeur pour voir le code du classeur. Changez la liste déroulante de droite en «Ouvrir». Il s'agit du script qui s'exécutera lors de la première ouverture du fichier de classeur.

créer un graphique gratuitement
Pour charger le graphique avec des données à partir du code, le graphique lui-même a besoin d'un nom. Revenez à la feuille de calcul, faites un clic droit sur le graphique et choisissez Propriétés. Vous verrez le champ "Nom" avec quelque chose comme "ChartSpace1". Vous pouvez changer cela en n'importe quoi. J'ai appelé le mien "MyChart".
Comment créer un graphique à partir de fichiers de données brutes dans n'importe quel produit Office VBAChart10
Aussi, juste pour que vous sachiez à quoi ressemble le fichier de données - le mien est un fichier texte rempli de valeurs de données au format délimité par des virgules. Ce fichier peut être n'importe quoi - des données de laboratoire exportées à partir de capteurs, des informations financières saisies manuellement dans le fichier par des stagiaires, ou n'importe quoi d'autre. Vous lirez le fichier avec votre code, donc peu importe à quoi ressemblent les données, tant que vous savez à quoi ressemblera chaque ligne lorsque votre programme la lira.
créer un graphique
Alors, maintenant pour la partie amusante. Je vais vous montrer le code en petites sections afin qu'il ne soit pas écrasant, et expliquer ce que fait le code. Le haut du code va d'abord lire toutes les valeurs du fichier texte et les stocker dans deux tableauxx, un pour x variables (xVar) et un pour y variables (yVar).

Dim fso As New FileSystemObject. Dim fnum. Dim MyFile As String. Dim strDataLine As String. Dim xVar () comme variante. Dim yVar () comme variante. Dim intNumOfLines As Integer MyFile = "c: \ files \ MyData.txt" fnum = FreeFile () Ouvrez MyFile pour l'entrée en tant que # 1. intNumOfLines = 0. Faire sans EOF (1) intNumOfLines = intNumOfLines + 1 Entrée # 1, strDataLine Entrée # 1, strDataLine. Boucle. Fermer # 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Ouvrez MyFile pour l'entrée As # 1. intNumOfLines = 0. Faire sans EOF (1) Entrée # 1, xVar (intNumOfLines) Entrée # 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1. Boucle. Fermer # 1

Ce code parcourt essentiellement le fichier de données deux fois - la première fois pour dimensionner les tableaux afin que ils sont la longueur exacte nécessaire pour stocker les données, puis une deuxième fois pour lire les données dans ces tableaux. Si vous ne savez pas ce qu'est un tableau, il s'agit d'une variable ou d'une zone de stockage qui contiendra une longue liste de valeurs auxquelles vous pouvez accéder en utilisant l'ordre dans lequel la valeur a été stockée dans le tableau. Le tiers chargé serait (3), par exemple.

Maintenant que deux de ces tableaux sont chargés avec toutes les valeurs de votre fichier de données, vous êtes prêt à charger ces valeurs dans le graphique que vous avez déjà intégré. Voici le code qui fait ça.

Avec Sheet1.MyChart .Clear .Refresh Set oChart = .Charts. Ajoutez oChart. HasTitle = True oChart. Titre. Caption = "My Data Values" 'oChart. Intérieur. Couleur = "bleu" oChart. PlotArea. Intérieur. Color = "white" Set oSeries = oChart. SeriesCollection. Ajouter avec oSeries .Caption = "Mes valeurs de données" .SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line. Couleur = "bleu" .Line. DashStyle = chLineDash .Line. Poids = 2 .Type = chChartTypeLine Fin avec oChart. HasLegend = True. oChart. Légende. Position = chLegendPositionBottom. Terminer par

C’est le «Sheet1.MyChart» qui relie le code au graphique réel que vous avez intégré. C'est basé sur ce que vous l'avez nommé. Ce sera le cas lorsque vous l'intégrez dans Word, Powerpoint ou tout autre produit Office. Vous ne le référerez pas à l'aide de «Sheet1», mais à la place, quel que soit l'élément contenant le graphique dans ce cas, tel que «document1» dans Word par exemple.

Le code ci-dessus définit ensuite l'étiquetage et la coloration du graphique, puis charge les valeurs à l'aide de la méthode «.setdata» pour les valeurs x et y de l'ensemble de données bidimensionnel. Une fois le code ci-dessus exécuté, le graphique suivant apparaît.
créer un graphique

Ces données sont directement extraites du fichier texte. Le seul inconvénient ici est que les fichiers de données devraient être bidimensionnels uniquement si vous souhaitez utiliser le code ci-dessus. Vous pouvez ajouter plus de valeurs à l'ensemble de données, mais vous devez modifier le code ci-dessus pour lire la troisième valeur à chaque fois dans la boucle, puis dupliquer la "SeriesCollection". Ajouter "pour créer une autre série, puis l'ajouter au graphique de la même manière.

Cela peut sembler complexe en lisant le code ci-dessus, mais une fois que vous en avez fait un, c'est un jeu d'enfant de le modifier en fonction de vos besoins. Vous pouvez utiliser le même graphique et un code similaire pour créer un graphique à barres, un nuage de points ou tout autre type de graphique que vous souhaitez utiliser avec ce même objet. Il est polyvalent et flexible - et c'est un outil puissant dans votre arsenal si vous avez un autre fan d'automatisation pour une plus grande productivité.

Jouez avec le code ci-dessus et voyez si vous pouvez charger automatiquement les données dans vos applications. Quelles utilisations créatives pouvez-vous imaginer pour ce type d'automatisation? Partagez vos pensées et vos commentaires dans la section des commentaires ci-dessous!

Ryan est titulaire d'un BSc en génie électrique. Il a travaillé 13 ans dans l'ingénierie d'automatisation, 5 ans dans l'informatique et est maintenant ingénieur d'applications. Ancien rédacteur en chef de MakeUseOf, il a pris la parole lors de conférences nationales sur la visualisation des données et a été présenté à la télévision et à la radio nationales.