Note: The other languages of the website are Google-translated. Back to English

Comment créer des rappels Outlook à partir d'une feuille de calcul Excel?

Cet article parle de la création de rappels Outlook basés sur les données de la feuille de calcul Excel.

Rappels Crete Outlook de la feuille de calcul Excel avec le code VBA


Rappels Crete Outlook de la feuille de calcul Excel avec le code VBA

Si vous souhaitez créer des rappels Outlook à partir d'Excel, procédez comme suit.

1. Créez une feuille de calcul contenant les en-têtes de colonne et les champs de rappel correspondants, comme illustré ci-dessous.

Notes: Pour le état occupé colonne, nombre 2 signifie que le rappel sera affiché comme Occupé dans votre calendrier Outlook. Vous pouvez le changer en 1 (provisoire), 3 (absent du bureau), 4 (Travailler ailleurs)ou 5 (gratuit) Comme vous le souhaitez.

2. appuie sur le autre + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

3. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module. Copiez ensuite le code VBA ci-dessous dans la fenêtre Code.

Code VBA: créer des rappels Outlook à partir d'une feuille de calcul Excel

Sub AddAppointments()
'Update by Extendoffice 20180608
    Dim I As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = Range("A2:G2")
    For I = 1 To xRg.Rows.Count
        Set xOutItem = xOutApp.createitem(1)
        Debug.Print xRg.Cells(I, 1).Value
        xOutItem.Subject = xRg.Cells(I, 1).Value
        xOutItem.Location = xRg.Cells(I, 2).Value
        xOutItem.Start = xRg.Cells(I, 3).Value
        xOutItem.Duration = xRg.Cells(I, 4).Value
        If Trim(xRg.Cells(I, 5).Value) = "" Then
            xOutItem.BusyStatus = 2
        Else
            xOutItem.BusyStatus = xRg.Cells(I, 5).Value
        End If
        If xRg.Cells(I, 6).Value > 0 Then
            xOutItem.ReminderSet = True
            xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
        Else
            xOutItem.ReminderSet = False
        End If
        xOutItem.Body = xRg.Cells(I, 7).Value
        xOutItem.Save
        Set xOutItem = Nothing
    Next
    Set xOutApp = Nothing
End Sub

Notes: Dans le code ci-dessus, A2: G2 est la plage de données sur laquelle vous souhaitez créer des rendez-vous.

4. appuie sur le F5 ou cliquez sur le bouton Exécuter pour exécuter le code. Ensuite, tous les rendez-vous avec des champs spécifiques seront insérés dans le calendrier de votre Outlook à la fois.

Et puis, vous pouvez aller dans le calendrier de vos perspectives pour voir les résultats, voir capture d'écran: 


Kutools for Outlook - Apporte 100 fonctionnalités avancées à Outlook et simplifie grandement le travail!

  • CC / BCC automatique par des règles lors de l'envoi d'e-mails; Transfert automatique Emails multiples par coutume; Réponse automatique sans serveur d'échange, et plus de fonctionnalités automatiques ...
  • Avertissement BCC - afficher le message lorsque vous essayez de répondre à tous si votre adresse e-mail est dans la liste BCC; Rappeler en cas de pièces jointes manquantes, et plus de fonctionnalités de rappel ...
  • Répondre (à tous) avec toutes les pièces jointes dans la conversation par courrier électronique; Répondre à de nombreux e-mails en secondes; Ajouter un message d'accueil automatique quand répondre; Ajouter la date au sujet ...
  • Outils de pièces jointes: gérer toutes les pièces jointes dans tous les courriers, Détachement automatique, Compresser tout, Tout renommer, Tout enregistrer ... Rapport rapide, Compter les courriers sélectionnésplus
  • Courriels indésirables puissants par coutume; Supprimer les messages et contacts en doubleplus Vous permettre de faire plus intelligemment, plus rapidement et mieux dans Outlook.
tir kutools outlook onglet kutools 1180x121
tir kutools outlook kutools plus onglet 1180x121
 
Commentaires (52)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Salut,

Excellente formule/code.


Que se passe-t-il que ce code génère plusieurs entrées dans le calendrier Outlook s'il est exécuté plus d'une fois par erreur. Je voulais également qu'il soit configuré comme un modèle afin que le personnel puisse l'utiliser. Ils peuvent mettre les dates et le reste des détails sont requis et lorsqu'ils sont exécutés, ils doivent répertorier les entrées dans le calendrier Outlook. Toutes les données Excel supprimées doivent également être supprimées d'Outlook et il en va de même pour toute modification. Lorsque j'enregistre la feuille de calcul Excel, elle est enregistrée au format Excel par défaut, mais je souhaite qu'elle soit enregistrée avec des macros afin qu'elle ne perde pas le code et que le personnel puisse l'utiliser autant de fois que nécessaire. Pouvez-vous s'il vous plaît conseiller et apporter des modifications pertinentes au code? Merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Pour enregistrer les macros pour une utilisation future dans le classeur, vous devez cliquer sur Fichier > Enregistrer sous > Parcourir > sélectionner un dossier pour enregistrer le classeur > choisir « Classeur Excel compatible avec les macros » dans la liste déroulante Type de fichier > Enregistrer.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Comment puis-je envoyer les rappels à plusieurs personnes ? S'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, merci pour le code, mais j'ai du mal à ne mettre que la première entrée d'Excel dans Outlook. Comment puis-je le faire entrer dans tous les éléments de ligne ?
Voici mon code, je l'ai ajouté dans une catégorie couleur


Sous Ajouter des rendez-vous()
'Mettre à jour par Extendoffice 20180608
Dim I As Long
Dim xRg As Range
Dim xOutApp en tant qu'objet
Dim xOutItem en tant qu'objet
Set xOutApp = CreateObject("Outlook.Application")
Définir xRg = Plage("A2:G2")
Pour I = 1 To xRg.Rows.Count
Définir xOutItem = xOutApp.createitem(1)
Debug.Print xRg.Cells(I, 1).Value
xOutItem.Subject = xRg.Cells(I, 1).Value
xOutItem.Location = xRg.Cells(I, 2).Value
xOutItem.Start = xRg.Cells(I, 3) + xRg.Cells(I, 8).Value
xOutItem.Duration = xRg.Cells(I, 4).Value
xOutItem.Categories = xRg.Cells(I, 9).Value
Si Trim(xRg.Cells(I, 5).Value) = "" Alors
xOutItem.BusyStatus = 2
autre
xOutItem.BusyStatus = xRg.Cells(I, 5).Value
Si fin
Si xRg.Cells(I, 6).Value > 0 Alors
xOutItem.ReminderSet = Vrai
xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
autre
xOutItem.ReminderSet = Faux
Si fin
xOutItem.Body = xRg.Cells(I, 7).Value
xOutItem.Save
Définir xOutItem = Rien
Suivant
Définir xOutApp = Rien
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème, le code fonctionne très bien mais n'ajoute que le premier rendez-vous au calendrier. Voici mon code :

Sous Ajouter des rendez-vous()
'Mettre à jour par Extendoffice 20180608
Dim I As Long
Dim xRg As Range
Dim xOutApp en tant qu'objet
Dim xOutItem en tant qu'objet
Set xOutApp = CreateObject("Outlook.Application")
Définir xRg = Plage("A2:G2")
Pour I = 1 To xRg.Rows.Count
Définir xOutItem = xOutApp.createitem(1)
Debug.Print xRg.Cells(I, 1).Value
xOutItem.Subject = xRg.Cells(I, 1).Value
xOutItem.Location = xRg.Cells(I, 2).Value
xOutItem.Start = xRg.Cells(I, 3).Value
xOutItem.Duration = xRg.Cells(I, 4).Value
Si Trim(xRg.Cells(I, 5).Value) = "" Alors
xOutItem.BusyStatus = 2
autre
xOutItem.BusyStatus = xRg.Cells(I, 5).Value
Si fin
Si xRg.Cells(I, 6).Value > 0 Alors
xOutItem.ReminderSet = Vrai
xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
autre
xOutItem.ReminderSet = Faux
Si fin
xOutItem.Body = xRg.Cells(I, 7).Value
xOutItem.Save
Définir xOutItem = Rien
Suivant
Définir xOutApp = Rien
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Vous devez changer Set xRg = Range("A2:G2") pour être A":où que vos données se terminent, donc si vous avez 20 lignes ce sera A2:G20.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour! J'adore l'idée de ce code, mais j'ai quelques questions:


1. Il ne fonctionnera pas à cause du "bogue" sur cette ligne (erreur 440, erreur d'exécution):
xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
2. Si je ne veux pas nécessairement mettre les en-têtes de colonne de A2:G2, puis-je simplement le changer dans le code (ex : F3-K3), cela fonctionnera-t-il toujours ?
3. Comment sait-il se connecter à mon Outlook ?


Merci pour votre réponse, j'apprécierais vraiment !
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Alexandra,
L'erreur 440 ne s'est pas produite dans mon cas. Quelle version d'Office utilisez-vous ?
Le code ne fonctionnera pas si vous changez simplement le code en F3:K3. Si vous avez besoin de la réponse, j'essaierai de la comprendre.
Cette ligne "Set xOutApp = CreateObject("Outlook.Application")" va permettre de connecter les données Excel à l'application Outlook.
Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, le code semble très utile mais présente un inconvénient, si le fichier est mis à jour en permanence, il créera un nouveau rappel à chaque exécution. Peut-on ajouter une ligne pour supprimer tous les rappels précédents puis en créer de nouveaux ?
Cela peut-il également être exporté vers plusieurs comptes Outlook ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Keith,
Désolé, je ne peux pas vous aider. Vous devez supprimer manuellement tous les rappels précédents dans Outlook. Et les rappels sont ajoutés au compte Outlook par défaut uniquement. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Cela a le potentiel d'être d'une grande aide. Merci!. Pouvez-vous ajouter un marqueur dans une nouvelle colonne qui s'active lorsqu'un rappel est généré pour cette ligne (manuel ou automatisé), mais ignore ensuite les lignes avec des marqueurs la prochaine fois que vous exécutez la macro ? 
Ce commentaire a été minimisé par le modérateur sur le site
ce code fonctionne mais seulement pour la première entrée. Comment l'ajustez-vous pour la plage : Sheet3!A2:G17 ?

J'ai changé le code pour dire : Set xRg = Range("Set xRg = Range("A2:G2") Pourtant, il ne sélectionne toujours que la première ligne dans Outlook.
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Veuillez remplacer la ligne Set xRg = Range("A2:G2") par Set xRg = Worksheets("Sheet3").Range("A2:G17").
Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Crystal,
J'ai déjà remplacé la ligne et cela fonctionne, mais 'body' dans la deuxième rangée et ainsi de suite ne sont pas sortis en rappel, mais ne sélectionnent que la première rangée.
S'il vous plaît donnez votre avis..
Ce commentaire a été minimisé par le modérateur sur le site
comment ajouter également d'autres participants à ce rendez-vous.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Dharma,
Désolé, le problème ne peut pas encore être résolu. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Cristal! Grand code.

Je dois ajouter/inviter des participants. Une idée?
Ce commentaire a été minimisé par le modérateur sur le site
cher webmestre
merci pour le code. J'ai un problème car il n'a pas été mis en œuvre. (erreur d'exécution '-21447467263 (80004001)' : Non implémenté.
lorsque j'appuie sur le bouton de débogage, il met en surbrillance la ligne de code "xOutItem.Save" 28.
pourriez-vous donner une solution à ce problème?
Cordialement
Singgih
Ce commentaire a été minimisé par le modérateur sur le site
Salut singgih,
Désolé de répondre si tard. J'ai besoin de connaître votre version d'Excel pour comprendre le problème. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Savez-vous comment je peux mettre un événement toute la journée ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Désolé, je ne peux pas encore résoudre le problème.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Est-il possible d'utiliser du code pour faire une entrée sur le calendrier de groupe dans Outlook ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Désolé, je ne peux pas encore résoudre le problème.
Ce commentaire a été minimisé par le modérateur sur le site
Si je l'utilise dans un diagramme de Gantt et que je mets à jour les dates d'échéance, dois-je réexécuter ? Existe-t-il un moyen simple de supprimer du calendrier sans supprimer chacun d'entre eux ?
Ce commentaire a été minimisé par le modérateur sur le site
lorsque nous utilisons le code VBA pour rappel, une erreur s'affiche
Erreur du compilateur :
Le type défini par l'utilisateur n'est pas défini
après avoir appuyé sur le bouton ok
déplacement du curseur sur DIM xRg comme plage

s'il vous plait aidez-moi...??
Ce commentaire a été minimisé par le modérateur sur le site
Salut vinette,
Désolé pour le dérangement. Quelle version d'Excel utilisez-vous ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut ..
Allons-nous exécuter cette macro à chaque fois pour activer le rappel ? ou nous n'avons besoin de cliquer qu'une seule fois ? alors c'est bon tu arrache l'ordinateur et ferme le fichier excel ?

Merci.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Juicy,
Il suffit d'un clic pour exécuter le code, puis les rappels préparés seront automatiquement créés dans le calendrier Outlook. Après cela, vous pouvez faire tout ce que vous voulez.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Existe-t-il un moyen d'automatiser l'exécution de ce code, par exemple. lors de l'ouverture des perspectives?
Ce commentaire a été minimisé par le modérateur sur le site
Salut chan,
Comme le code est enregistré dans le classeur Excel, nous ne pouvons pas l'exécuter automatiquement lors de l'ouverture d'Outlook. Désolé.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Lorsque je suis les étapes exactes avec Microsoft Outlook ouvert et exécuté en arrière-plan, l'exécution de la macro me donne une erreur " Erreur de compilation : procédure extérieure non valide". Toute aide serait appréciée.

Merci
Ce commentaire a été minimisé par le modérateur sur le site
Salut Abe,
Comme les champs de rappel ont été créés dans une feuille de calcul, vous devez ajouter le code à la fenêtre de code de module du classeur Microsoft Excel et l'exécuter dans Excel.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai un tableau dynamique dans Excel à mettre à disposition dans le corps du rappel. Pouvons-nous faire cela ? s'il vous plaît suggérer comment
Ce commentaire a été minimisé par le modérateur sur le site
Nous avons donc une feuille de calcul Excel dans laquelle nous entrons les dates d'expiration des licences, et nous nous demandons comment nous ferions pour que lorsque nous ajoutons de nouvelles dates d'expiration, elles soient automatiquement ajoutées à notre calendrier Outlook avec des rappels un mois avant et 2 semaines avant. Qu'est-ce que cela exigerait?
Ce commentaire a été minimisé par le modérateur sur le site
Salut, est-il possible de spécifier à quel calendrier le rappel sera ajouté. Je souhaite les ajouter à un calendrier de boîte aux lettres partagé afin que tous les membres de l'équipe reçoivent le rappel, plutôt que mon calendrier de messagerie personnel
Ce commentaire a été minimisé par le modérateur sur le site
Hello! 
Avez-vous trouvé un moyen d'ajouter le(s) rappel(s) à toute l'équipe ? Je veux inclure une seule personne de plus et je me demande si c'est possible et comment le faire
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, merci beaucoup pour ce code. Cela fonctionne magnifiquement sur les fenêtres. Savez-vous comment je peux implémenter cela sur Mac? J'essaie de trouver un moyen depuis quelques jours maintenant, une façon que j'ai trouvée est de créer un AppleScript mais je ne sais pas comment faire cela. Une autre façon était d'utiliser une machine virtuelle exécutant Windows 10, mais ce n'est pas ma façon idéale de travailler.
Ce commentaire a été minimisé par le modérateur sur le site
Erreur "Cet objet ne prend pas en charge cette action" sur xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL