Comment exporter vos tâches Outlook vers Excel avec VBA

Comment exporter vos tâches Outlook vers Excel avec VBA / les fenêtres

Que vous soyez ou non un fan de Microsoft, une bonne chose à dire au moins sur les produits MS Office est la facilité avec laquelle ils peuvent être intégrés les uns aux autres..

Pensez simplement au fait que les courriels entrants génèrent automatiquement de nouvelles tâches ou de nouveaux rendez-vous dans le calendrier, ou qu’une tâche terminée envoie automatiquement un courrier électronique à votre patron avec le rapport de statut mis à jour à partir de la description de la tâche..

Si vous le faites bien, vous pouvez réduire la charge de travail de votre journée entière par bateau, simplement en automatisant les tâches de manière intelligente et efficace..

Si vous suivez mon écriture ici, alors vous savez que dans le passé, j'ai couvert des sujets tels que l'intégration de fonctionnalités de navigateur Web dans Excel. Comment créer votre propre navigateur Internet de base en utilisant VBA Comment créer votre propre navigateur Internet de base en utilisant VBA quand vous arrêtez vraiment à y penser, un navigateur Internet dans sa forme la plus simple n’est pas vraiment une application aussi impressionnante. Je veux dire, oui, Internet est incroyable par rapport aux normes de quiconque. Le concept de liaison… En savoir plus, maximisation automatique des fenêtres d’application 3 façons d’ouvrir des applications et Windows optimisées avec VB Script [Windows] 3 façons d’ouvrir des applications et Windows optimisées avec VB Script [Windows] Si j’aime une chose que j’aime faire, c'est écrire des scripts VB. Qu'il s'agisse d'un fichier de script Windows ou d'un script VBA dans une application, le script offre la possibilité d'ajouter des fonctionnalités aux applications… En savoir plus, ou d'automatiser les mises à jour des graphiques dans Excel Comment créer des graphiques Excel à mise à jour automatique en trois étapes simples Mise à jour des graphiques Excel en trois étapes simples Nous allons vous montrer comment mettre à jour automatiquement vos graphiques Excel. Ajoutez simplement de nouvelles données et observez leur affichage automatique dans votre graphique. C'est rapide et facile Lire la suite .

Dans cet article, je vais couvrir une autre tâche d'automatisation - celle que j'ai utilisée souvent plus récemment - pour mettre à jour automatiquement une feuille de calcul Excel avec toutes vos tâches Outlook restantes en fin de journée..

Alimentation des tâches Outlook dans une feuille de calcul Excel

Il y a beaucoup de raisons pour lesquelles vous voudrez peut-être faire cela. Vous souhaitez peut-être suivre quotidiennement vos tâches non terminées dans un format que vous pouvez rapidement envoyer à quelqu'un (ce n'est pas si facile à faire avec les tâches Outlook). Ou peut-être que cela fera partie d'un rapport plus grand que vous allez taper dans Word.

Quoi qu’il en soit, il est utile de pouvoir capturer et sortir des informations de tâches Outlook incomplètes..

Pour cet exemple, voici mon exemple de liste de tâches Outlook avec les 5 tâches restantes que je n'ai pas encore terminées..

Tout ce que nous allons faire ici est en VBA. Dans Outlook, vous accédez à l’éditeur VBA en cliquant sur “Outils“, puis “Macro” puis en choisissant le “Visual Basic Editor“.

Le code que vous allez utiliser pour capturer votre liste de tâches et l'exporter vers Excel n'est en réalité pas aussi compliqué que vous ne le pensez. La première étape consiste à se connecter aux objets Outlook et aux objets Excel en créant les définitions de variables nécessaires. Ensuite, en utilisant l'objet de classeur que vous avez créé, commencez par créer l'en-tête dans votre feuille de calcul..

Dim strReport As String Dim olNameSpace As Outlook.NameSpace Dim taskFolder As Outlook.MAPIFolder Dim tâches As Outlook.Items Dim tsk As Outlook.TaskItem Dim objExcel En tant que nouvel Excel.Application Dim exWb As Excel.Workbook Dim sht En tant qu'Excel.Worksheet Dim strMyName String Dim x As Integer Dim y As Integer Set exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Supprimez' exWb.Sheets.Add (strMyName) défini sur olnameSpace = Application.GetNamespace ("MAPI") Définir taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Définir tasks = taskFolder.Items strReport = "" 'Créer un en-tête exWb.Sheets ("Sheet1"). Cells (1, 1) = "Subject" exWb .Sheets ("Sheet1"). Cells (1, 2) = "Date d'échéance" exWb.Sheets ("Sheet1"). Cells (1, 3) = "Pourcentage terminé" exWb.Sheets ("Sheet1"). Cells ( 1, 4) = "Statut"

Alors, voici à quoi ressemble le nouveau tableur. Votre application Outlook vient de créer un nouveau fichier Excel appelé “MyActiveTasks.xls” dans le répertoire C: \ temp et créé un en-tête pour les tâches que vous êtes sur le point d'insérer.

Il est donc temps d'extraire vos tâches et de les insérer dans le fichier Excel. J'utilise un “y” variable commençant à deux afin de s'assurer que la première ligne utilisée n'est pas la première, car je ne veux pas écraser l'en-tête.

y = 2 Pour x = 1 To tasks.Count Définir tsk = tasks.Item (x) 'strReport = strReport + tsk.Subject + ";"' Compléter les données si pas tsk.Complete Puis exWb.Sheets ("Ryan") .Cells (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Cellules (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Cellules (y, 3) = tsk.PercentComplete exWb .Feuilles ("Ryan"). Cellules (y, 4) = tsk.Status y = y + 1 End If Next x

Ce script effectue une recherche dans la liste complète des éléments de tâche dans Outlook, vérifie si l'élément est encore terminé et, dans le cas contraire, insère les informations de cette tâche dans 4 cellules de la feuille de calcul. Si vous le souhaitez, vous pouvez insérer plus d'informations. Explorez les informations de tâches disponibles en tapant “tsk.” puis en parcourant la liste des propriétés qui apparaissent.

Maintenant, voici à quoi ressemble la feuille.

Étant un peu perfectionniste, il reste un problème. Remarquez comment la colonne A a coupé le dernier sujet de la tâche?” Je n'aime pas ça. Ajoutons donc un peu plus de code pour ajuster automatiquement toutes les colonnes du tableau Excel..

'Ajustez automatiquement toutes les largeurs de colonne pour chaque sht Dans ActiveWorkbook.Worksheets sht.Columns ("A"). EntireColumn.AutoFit sht.Columns ("B"). EntireColumn.AutoFit sht.Columns ("C"). EntireColumn.AutoFit. Colonnes ("D"). EntireColumn.AutoFit Suivant sht exWb.Save exWb.Close Définir exWb = Nothing

le sauvegarder et Fermer Les méthodes de ces dernières lignes vont enregistrer la feuille et la fermer afin qu'elle ne reste pas verrouillée par l'application, sinon il serait difficile d'ouvrir le fichier Excel tant que vous n'avez pas fermé Outlook..

Alors, maintenant, voici à quoi ressemble le tableur fini.

Quand définissez-vous le script à exécuter? Eh bien, je l'ai configuré pour fonctionner sur le “Application.Close ()” événement, qui s'exécute lorsque vous quittez Outlook à la fin de la journée. Outlook produira le rapport de feuille de calcul Excel à la fin de la journée, tout seul..

Pouvez-vous penser à d'autres utilisations intéressantes de cette technique? Peut-être en envoyant automatiquement un courrier électronique avec la liste des tâches, ou en les exportant dans un fichier HTML et en les transférant par FTP sur votre serveur Web?

Avec un peu de créativité, c'est incroyable ce que vous pouvez réaliser avec un peu d'automatisation de script. Partagez vos propres pensées et idées dans la section commentaires ci-dessous!

Shutterstock

En savoir plus sur: Microsoft Excel, Microsoft Outlook, Tableur, Gestion des tâches, Programmation Visual Basic.