Mis à jour par Brad Jones le 25 août 2017.
Au cours de votre semaine de travail, il est probable que vous copiez et collez des informations de Microsoft Excel dans Word, ou inversement.
C'est ainsi que les gens produisent souvent des rapports écrits basés sur des données accumulées et mises à jour dans une feuille de calcul. Excel est un excellent programme pour tout, de la création de graphiques à l'aspect professionnel 6 nouveaux graphiques Excel et comment les utiliser 6 nouveaux graphiques Excel et comment les utiliser Besoin de tirer le meilleur parti de vos graphiques Excel? Voici un guide unique sur certains des nouveaux graphiques présentés dans la dernière version d'Excel. Lire la suite, à la mise en place d'un traqueur de gestion de projet 10+ Modèles Excel utiles pour la gestion de projet et le suivi 10+ Modèles Excel utiles pour la gestion de projet et les gabarits de gestion sont indispensables aux chefs de projet. Nous vous montrons comment vous pouvez répliquer des projets réussis en utilisant des modèles prêts à l'emploi dans Microsoft Excel et au-delà. Lire la suite - mais quand il s'agit de rédiger un rapport, Word est un outil bien meilleur.
Dans cet article, nous allons plonger dans les scripts VBA en arrière-plan qui vous permettent de programmer les connexions entre les données stockées dans un fichier Excel et les documents Word dans lesquels vous produisez des rapports.
Il est étonnamment facile d'intégrer des données Microsoft Excel dans Microsoft Word une fois que vous savez comment ajouter les bonnes références et comment disposer la syntaxe du code VBA en arrière-plan.
Configuration de la feuille de calcul
Dans cet exemple, je vais commencer avec une feuille de calcul Excel assez simple. En pratique, le fichier Excel peut être composé de plusieurs feuilles de calcul contenant beaucoup de données - cela n'a pas d'importance.
Tant que vous savez où trouver les données dans la feuille de calcul, vous serez en mesure de saisir et de saisir en utilisant VBA Comment envoyer des e-mails à partir d'une feuille de calcul Excel Utilisation de scripts VBA Comment envoyer des e-mails à partir d'une feuille de calcul Excel Je vais vous montrer comment configurer des emails automatisés depuis Excel en utilisant des scripts Collaboration Data Objects, (CDO) et VBA. Nos modèles de code rendent cela beaucoup plus facile que ça en al'air! Lire la suite .
Voici à quoi ressemble mon exemple de feuille de calcul. C'est une liste des dépenses totales qui ont été calculées tout au long de l'année.
Configuration du document Word
Imaginons que vous ayez un gestionnaire qui aimerait voir un rapport bien formaté décrivant les dépenses, regroupant des éléments similaires et présentant l'information dans une mise en page un peu plus esthétique.
Vous pouvez le faire en incorporant des objets tels que des zones de texte et des étiquettes dans votre document Word. Lorsque vous êtes dans Word, cliquez simplement sur l'onglet du menu Developer, puis sélectionnez "Design Mode" dans la section Contrôles . Utilisez l'icône déroulante Outils hérités pour insérer différents éléments dans votre document.
Utilisez ce menu pour insérer une étiquette .
Une fois que vous avez placé l'étiquette dans le document où vous le souhaitez (ce qui n'est pas toujours une tâche facile), vous êtes prêt à programmer le flux de données. Mais d'abord, vous devrez nommer l'étiquette pour que le VBA puisse l'identifier. Faites un clic droit sur l'étiquette et allez dans Propriétés . Trouvez le champ (Nom) et appelez-le quelque chose dont vous vous souviendrez.
Maintenant, ajoutez un bouton de commande à partir de la même liste déroulante Outils hérités et double-cliquez dessus pour ouvrir l'éditeur VBA. Lorsque votre code fonctionnera plus tard, vous pouvez le modifier pour que le code s'exécute sur l'événement Document Open () . Vous verrez cela dans les boîtes déroulantes de l'objet dans la fenêtre de l'éditeur.
Travailler avec VBA
Pour commencer à connecter Word à Excel, vous devez vous assurer que vous pouvez référencer ce dernier dans VBA Tutoriel de programmation VBA Excel pour les débutants Tutoriel de programmation VBA Excel pour les débutants VBA est un outil électrique Microsoft Office. Vous pouvez l'utiliser pour automatiser des tâches avec des macros, définir des déclencheurs et bien plus encore. Nous vous présenterons la programmation visuelle de base d'Excel avec un projet simple. Lire la suite .
Préparer l'importation de données Excel
Cliquez sur Outils, puis sur Références . Faites défiler la liste jusqu'à ce que vous voyez la bibliothèque d'objets Microsoft Excel 16.0 et sélectionnez-le.
Une fois que vous avez fait cela, le reste est juste une question d'écriture d'un script VBA ridiculement simple pour extraire des données d'une feuille de calcul Excel, et mettre à jour automatiquement la légende de l'étiquette avec les données.
Voici le code:
Privé Sub CommandButton1_Click () Dim objExcel Comme Nouveau Excel.Application Dim exWb Comme Excel.Workbook Définissez exWb = objExcel.Workbooks.Open ("C: \ Utilisateurs \ Brad \ Desktop \ dépenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Feuilles ("Sheet1") .Cellules (12, 2) exWb.Fermer Set exWb = Nothing End Sub
Voyez comment cela fonctionne? L'objet d'application Excel "exWb" ouvre le fichier Microsoft Excel sur le chemin que vous lui fournissez, il va directement dans la feuille et le numéro de cellule, extrait les données et les place dans la propriété Caption de l'étiquette que j'ai nommée total_expenses . Tout ce que vous devez éditer dans votre script est le chemin du fichier et le nom de l'étiquette.
Testez votre Macro
Pour tester votre bouton de commande, enregistrez votre document, en n'oubliant pas de spécifier que vous voulez un document Word Macro-Enabled pour que votre code fonctionne.
Voici la macro VBA en action.
Intégrer des étiquettes Excel
Le plus difficile dans le traitement des étiquettes dans Word est qu'il est parfois difficile de l'aligner à la fin d'une phrase ou à côté d'un autre texte.
Une façon de surmonter cela est d'incorporer une partie du texte à côté des données dans le code VBA lui-même. Comme vous pouvez le voir ici, j'ai mis le texte statique directement dans la légende lorsque je crée l'étiquette elle-même.
Maintenant, tout ce que vous avez à faire est d'inclure ce texte lorsque vous mettez à jour l'étiquette avec votre script VBA, et ajoutez simplement les données du fichier Microsoft Excel à la fin de ce texte.
Voici à quoi ressemblerait ce genre de code.
Dim objExcel Comme Nouveau Excel.Application Dim exWb Comme Excel.Workbook Définissez exWb = objExcel.Workbooks.Open ("c: \ Utilisateurs \ Brad \ Desktop \ dépenses.xlsa") ThisDocument.total_expenses.Caption = exWb.Sheets ("Sheet1" ) .Cells (12, 2) ThisDocument.total_hotels.Caption = "Hôtels:" & exWb.Sheets ("Sheet1"). Cellules (5, 2) ThisDocument.total_dining.Caption = "Dining Out:" & exWb.Sheets ( "Sheet1") .Cellules (2, 2) ThisDocument.total_tolls.Caption = "Péages:" & exWb.Sheets ("Feuille1") .Cellules (3, 2) ThisDocument.total_fuel.Caption = "Fuel:" & exWb. Feuilles ("Sheet1"). Cellules (10, 2) exWb.Fermer Set exWb = Rien
Vous pouvez utiliser le symbole "&" de concaténation de chaîne pour placer le texte statique avec les données extraites de la feuille Excel. Voici à quoi ressemblent les résultats finaux dans le document Word mis à jour:
Prendre les choses plus loin
Si vous voulez tester vos capacités, pourquoi ne pas automatiser votre rapport? 5 Ressources pour les macros Excel pour automatiser vos feuilles de calcul 5 Ressources pour les macros Excel pour automatiser vos feuilles de calcul Recherche de macros Excel? Voici cinq sites qui ont ce que vous cherchez. Lire la suite encore plus loin? Vous pouvez supprimer ce bouton de commande gris laid de votre document Microsoft Word, simplement en ayant le script de mise à jour de données exécuté sur Document.Open () - le processus entier aura lieu dans les coulisses.
Cela signifie que dans de nombreux cas, vous pouvez créer le document initial une seule fois et ne plus jamais le créer à nouveau. Tout ce que vous avez à faire est de l'ouvrir, et toutes les étiquettes mettront à jour automatiquement pour vous avec les données du fichier Microsoft Excel mis à jour. Cliquez simplement sur Imprimer et envoyez le rapport à votre responsable. Un travail de 30 minutes est devenu une impression d'une minute!
Pouvez-vous penser à d'autres utilisations cool pour cette technique d'intégration de données en utilisant VBA? Partagez quelques-unes de vos idées et réflexions dans la section des commentaires ci-dessous.
Crédit d'image: Punyaphat Larpsomboon via Shutterstock.com