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

  • Joseph Goodman
  • 0
  • 786
  • 136
Publicité

Ne serait-il pas agréable d'avoir la possibilité d'ouvrir simplement une feuille de calcul Excel ou un document Word, et sans rien faire du tout, les données sont lues directement à partir d'un fichier texte ou CSV, puis chargées directement dans un graphique incorporé sur votre feuille de calcul ou document Word? Il s'agit d'une forme d'automatisation à l'aide de produits Office, car s'il est possible d'automatiser la création de graphiques de 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 n'est requise. Ou vous pouvez charger des données dans un graphique directement dans un courrier électronique dans Outlook.

Pour ce faire, la technique consiste à installer le complément Office Web Components. En outre, il vous suffit de configurer quelques éléments de l'application Office que vous souhaitez utiliser pour importer les données et vous êtes prêt à automatiser votre travail de création de rapports. J'ai abordé certains des éléments que nous allons utiliser dans cet article de précédents articles sur VBA Comment créer votre propre application simple avec VBA Comment créer votre propre application simple avec VBA Pour ceux qui aimeraient vraiment pour pouvoir écrire votre propre application, mais je n'ai jamais tapé une seule ligne de code auparavant, je vais vous expliquer comment faire votre très… ici à MakeUseOf. Quelques-uns de ceux-ci incluaient le transfert de données entre les applications avec le presse-papiers. Passer toute information entre les applications VBA à l'aide du presse-papiers. Passer toute information entre les applications VBA et le presse-papiers. L'un des aspects les plus frustrants de l'utilisation de VBA dans des applications spécifiques est que ce n'est pas toujours facile. pour obtenir deux applications à “parler” les uns aux autres. Vous pouvez essayer des transactions très rapides…, exporter des tâches Outlook vers Excel Comment exporter vos tâches Outlook vers Excel avec VBA Comment exporter vos tâches Outlook vers Excel avec VBA Que vous soyez un fan de Microsoft ou non, une bonne chose à faire Au moins sur les produits MS Office, c’est à quel point il est facile d’intégrer chacun d’entre eux… et d’envoyer des courriels depuis Excel Comment envoyer des courriels depuis une feuille de calcul Excel à l’aide de scripts VBA Comment envoyer des courriels depuis une feuille de calcul Excel Scripts VBA Notre modèle de code vous aidera à configurer des courriels automatisés à partir d'Excel à l'aide de CDO (Collaboration Data Objects) et de scripts VBA. scénario.

Ce que je vais vous montrer, c'est comment combiner Office Web Components avec des scripts de fichier texte pour créer un flux de données transparent et automatisé à partir d'un fichier texte plat sur votre ordinateur dans votre produit Office (dans notre cas, Excel). 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) disposant d'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 certaines choses. 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 développer 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, cliquez sur “Personnaliser le ruban” et activer le “Développeur” languette.

De retour dans Excle, vous verrez maintenant “Développeur” montrer dans les menus. Cliquez dessus et cliquez sur “Mode de conception”. Puis cliquez sur “Voir le code” voir l'éditeur VBA.

Dans l'éditeur, vous devez activer les références dont vous avez besoin pour le code que je vais vous transmettre. Assurez-vous d'avoir préalablement installé le complément Office Web Components, sinon l'objet Microsoft Chart ne sera pas disponible..


Cliquez sur Outils, puis sur Références. Une liste de toutes les références disponibles sur votre système s'affiche. Si vous ne savez pas ce que c'est, les références sont essentiellement des bibliothèques de code et des objets que vous pouvez insérer dans votre propre projet. Celles-ci vous permettent de faire des choses vraiment cool, en fonction de la référence que vous activez. Si vous venez d'installer Office Web Components sur votre système, vous devez l'ajouter comme nouvelle bibliothèque. Cliquez donc sur le bouton Parcourir pour trouver le fichier .dll approprié..

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 \.

Cliquez sur la case à cocher pour la “Microsoft Office Web Components 11.0” référence, et n'oubliez pas de sélectionner “Microsoft Scripting Runtime” ainsi, vous aurez accès à la lecture ou à l'écriture à partir de fichiers de données.

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”.

Faites défiler jusqu'à “Microsoft Office Chart 11.0” et cliquez sur OK.

Nous nous mettons enfin au travail. Voici à quoi ressemble le graphique des composants Web MS intégré dans une feuille de calcul. Ça va ressembler le même incorporé dans un document Word ou quoi que ce soit d'autre.


Ainsi, dans le cas d'Excel, je souhaite que le graphique charge instantanément les données du fichier de données lors de l'ouverture du fichier de classeur. Pour cela, vous allez dans l'éditeur de code en cliquant sur “Voir le code” dans le menu Développeur et double-cliquez sur le classeur pour afficher le code du classeur. Changer le bon menu déroulant à “Ouvrir”. Ceci est le script qui sera exécuté lors de la première ouverture du fichier de classeur.


Pour charger le graphique avec des données de code, le graphique lui-même a besoin d'un nom. Retournez à la feuille de calcul, cliquez avec le bouton droit sur le graphique et choisissez Propriétés. Vous verrez le “prénom” champ avec quelque chose comme “ChartSpace1”. Vous pouvez changer cela en n'importe quoi. J'ai appelé le mien “MyChart”.

En outre, pour que vous sachiez à quoi ressemble un fichier de données, le mien est un fichier texte contenant des valeurs de données au format délimité par des virgules. Ce fichier peut être n'importe quoi - données de laboratoire exportées à partir de capteurs, informations financières saisies manuellement dans le fichier par des stagiaires, ou quoi que ce soit d'autre. Vous lirez le fichier avec votre code, ainsi, peu importe l'apparence des données, aussi longtemps que vous saurez à quoi ressemblera chaque ligne lorsque votre programme le lira..

Donc, maintenant pour la partie amusante. Je vais vous montrer le code par petites sections pour que ce ne soit pas accablant et expliquer ce que le code fait. Le haut du code va d'abord lire toutes les valeurs du fichier texte et les stocker dans deux tableaux, 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 xVar () As Variant Dim yVar () As Variant Dim intNumOfLines As Entier MonFich = "c: \ files \ MyData.txt" fnum = FreeFile () Ouvrir MyFile Pour l'entrée n ° 1, intNumOfLines = 0 à ne pas faire EOF (1) intNumOfLines = intNumOfLines + 1 Entrée # 1, strDataLine Entrée n ° 1, strDataLine Boucle Fermer n ° 1 ReDim xVar (intNumOfLines) ReDim yVar (intNumOfLines) Ouvrir MyFile Divers 1 intNumOfLines = 0 à ne pas faire EOF (1) Entrée n ° 1, xVar (intNumOfLines) Entrée n ° 1, yVar (intNumOfLines) intNumOfLines = intNumOfLines + 1 Fermeture de la boucle n ° 1

En gros, ce code parcourt le fichier de données deux fois - la première fois pour dimensionner les tableaux afin qu'ils correspondent à la longueur exacte requise pour stocker les données, puis une seconde 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. Le tiers chargé serait (3), par exemple.

Maintenant que vous avez chargé deux de ces tableaux 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à incorporé. Voici le code qui fait ça.

Avec Sheet1.MyChart .Clear .Refresh Définissez oChart = .Charts.Add oChart.HasTitle = True oChart.Title.Caption = "Mes valeurs de données" 'oChart.Interior.Color = "blue" oChart.PlotArea.Interior.Color = " white "Définissez oSeries = oChart.SeriesCollection.Add avec oSeries .Caption =" Mes valeurs de données ".SetData chDimCategories, chDataLiteral, xVar .SetData chDimValues, chDataLiteral, yVar .Line.Color =" blue ".Line.DashStyle = chLine .Weight = 2 .Type = chChartTypeLine Fin avec oChart.HasLegend = True oChart.Legend.Position = chLegendPositionBottom Fin avec

C'est le “Sheet1.MyChart” qui relie le code au graphique que vous avez intégré. C'est basé sur ce que vous l'avez nommé. Ce sera le cas lorsque vous l'incorporerez dans Word, Powerpoint ou tout autre produit Office. Vous ne le référerez pas en utilisant “Feuille1”, mais à la place quel que soit l'élément détient le graphique dans ce cas, tels que “document1” dans Word par exemple.

Le code ci-dessus configure ensuite l’étiquetage et la coloration du graphique, puis charge les valeurs à l’aide de la touche “.setdata” méthode pour les valeurs x et y de l’ensemble de données 2D. Une fois que le code ci-dessus est exécuté, le graphique suivant apparaîtra.

Ces données sont directement sorties du fichier texte. Le seul inconvénient ici est que les fichiers de données ne doivent être bidimensionnels que 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 le fichier. “SeriesCollection.Add” section pour créer une autre série, puis l'ajouter au graphique de la même manière.

Cela peut sembler complexe de lire le code ci-dessus, mais une fois que vous en avez fait une, c'est un jeu d'enfant de le modifier en fonction de vos besoins. Vous pouvez utiliser le même graphique et le même code pour créer un graphique à barres, un graphique à dispersion ou tout autre type de graphique que vous souhaitez utiliser avec le même objet. Polyvalent et flexible, il constitue un outil puissant dans votre arsenal si vous êtes un féru d'automatisation pour une plus grande productivité..

!




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.