
Lesley Fowler
7
5229
333
Mis à jour par Brad Jones le 25 août 2017.
Au cours de votre semaine de travail, vous êtes probablement souvent obligé de copier et de coller des informations de Microsoft Excel dans Word, ou inversement..
C’est ainsi que les gens produisent souvent des rapports écrits à partir de données accumulées et mises à jour dans un tableur. Excel est un excellent programme pour tout, de la création de graphiques d'aspect professionnel à la création d'un suivi de gestion de projet - mais lorsqu'il s'agit de rédiger un rapport, Word est un outil bien meilleur.
Dans cet article, nous allons nous intéresser de plus près aux scripts VBA d’arrière-plan, qui vous permettent de programmer des connexions entre des données stockées dans un fichier Excel et des documents Word dans lesquels vous créez des rapports..
Il est étonnamment facile d'intégrer des données Microsoft Excel à Microsoft Word une fois que vous savez comment ajouter les bonnes références et comment mettre en forme la syntaxe du code VBA en arrière-plan..
Configuration de la feuille de calcul
Dans cet exemple, je vais commencer par une feuille de calcul Excel assez simple. En pratique, le fichier Excel peut être constitué de plusieurs feuilles de calcul contenant beaucoup de données..
Tant que vous savez où trouver les données dans la feuille de calcul, vous pourrez les saisir et les récupérer à l’aide de VBA 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 à l'aide de scripts VBA Notre Le modèle de code vous aidera à configurer des e-mails automatisés à partir d'Excel à l'aide de CDO (Collaboration Data Objects) et de scripts VBA.. .
Voici à quoi ressemble mon exemple de feuille de calcul. C'est une liste de dépenses totales calculées tout au long de l'année.
Configuration du document Word
Supposons qu'un responsable souhaite voir un rapport bien formaté décrivant les dépenses, regroupant des éléments identiques et présentant les informations dans un modèle 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 le bouton Développeur onglet de menu, puis sélectionnez “Mode de conception” dans le Les contrôles section. Utilisez le Outils hérités icône déroulante pour insérer différents éléments dans votre document.
Utilisez ce menu pour insérer un Étiquette.
Une fois que vous avez placé l'étiquette dans le document où vous le souhaitez (tâche pas toujours facile), vous êtes prêt à programmer le flux de données. Mais tout d’abord, vous devez nommer l’étiquette afin que VBA puisse l’identifier. Faites un clic droit sur l'étiquette et allez dans Propriétés. Trouvez le (Prénom) terrain et appeler quelque chose que vous vous souviendrez.
Maintenant, ajoutez un Bouton de commande de la même Outils hérités dans la liste déroulante et double-cliquez dessus pour ouvrir l’éditeur VBA. Lorsque votre code fonctionnera plus tard, vous pourrez le modifier pour qu'il s'exécute sur le Document ouvert () un événement. Vous verrez cela dans les listes déroulantes d'objets de la fenêtre d'édition.
Travailler avec VBA
Pour commencer à connecter Word à Excel, vous devez vous assurer de pouvoir référencer ce dernier dans VBA. Le didacticiel de programmation Excel VBA pour les débutants Le didacticiel de programmation Excel VBA pour les débutants VBA est un outil puissant de Microsoft Office. Vous pouvez l'utiliser pour automatiser des tâches avec des macros, définir des déclencheurs, etc. Nous allons vous présenter la programmation visuelle de base Excel avec un projet simple. .
Préparer l'importation de données Excel
Cliquer sur Outils, et alors Références. Faites défiler la liste jusqu'à voir le Bibliothèque d'objets Microsoft Excel 16.0 et sélectionnez-le.
Une fois cela fait, le reste consiste simplement à écrire 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:
Private Sub CommandButton1_Click () Dim objExcel En tant que nouvel Excel.Application Dim exWb en tant que Excel.Workbook Définir exWb = objExcel.Workbooks.Open ("C: \ Utilisateurs \ Brad \ Desktop \ dépenses.xlsx") ThisDocument.total_expenses.Caption = exWb. Feuilles ("Sheet1"). Cellules (12, 2) exWb.Close Set exWb = Nothing End Sub
Vous voyez comment ça marche? le “exWb” L'objet d'application Excel ouvre le fichier Microsoft Excel sur le chemin que vous lui avez fourni. Il va directement dans la feuille et le numéro de cellule spécifiques, extrait les données et les place dans la propriété Caption de l'étiquette que j'ai nommée. dépenses totales. Tout ce que vous devez modifier 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, sans oublier de spécifier que vous souhaitez Document Word Macro-Enabled afin que votre code fonctionne.
Voici la macro VBA en action.
Intégrer des étiquettes Excel
La difficulté avec les é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 consiste à incorporer une partie du texte aux données du 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..
Il ne vous reste plus qu'à inclure ce texte lorsque vous mettez à jour l'étiquette avec votre script VBA et à simplement ajouter les données du fichier Microsoft Excel à la fin de ce texte..
Voici à quoi ressemblerait ce genre de code.
Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Définir 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 = "Dîner:" & exWb.Sheets ( "Feuille1"). Cellules (2, 2) ThisDocument.total_tolls.Caption = "Péages:" & exWb.Sheets ("Sheet1"). Cellules (3, 2) ThisDocument.total_fuel.Caption = "Carburant:" & exWb. Feuilles ("Sheet1"). Cellules (10, 2) exWb.Close Set exWb = Nothing
Vous pouvez utiliser la concaténation de chaîne “Et” symbole à placer connectez le texte statique aux données extraites de la feuille Excel. Voici à quoi ressemblent les résultats finaux dans le document Word mis à jour:
Aller plus loin
Si vous souhaitez tester vos compétences, pourquoi ne pas automatiser votre rapport? 5 Ressources pour les macros Excel pour automatiser vos feuilles de calcul 5 Ressources pour les Macros pour automatiser vos feuilles de calcul Vous recherchez des macros Excel? Voici cinq sites qui ont ce que vous cherchez. Même plus loin? Vous pouvez supprimer ce bouton de commande gris laid de votre document Microsoft Word, simplement en exécutant le script de mise à jour des données sur Document.Open () - l'ensemble du processus se déroulera dans les coulisses.
Cela signifie que dans de nombreux cas, vous pouvez créer le document initial une fois, puis ne plus jamais le créer. Tout ce que vous avez à faire est de l'ouvrir. Toutes les étiquettes se mettront automatiquement à jour avec les données du fichier Microsoft Excel mis à jour. Cliquez Impression, et soumettez le rapport à votre responsable. Un travail de 30 minutes vient d'être transformé en une impression d'une minute!
Pouvez-vous penser à d’autres utilisations intéressantes de cette technique d’intégration de données utilisant VBA? Partagez certaines de vos idées et réflexions dans la section commentaires ci-dessous.
Crédit d'image: Punyaphat Larpsomboon via Shutterstock.com