Générer des rendez-vous outlook depuis Excel

Bonjour à tous,

Après avoir lu les différentes info de ce site et appris plein de chose j'ai réussi à créer une macro permettant de générer automatique des alertes dans mon outlook.

Le problème qui se pose est que une fois la macro lancée un oui apparait (jusque là tout va bien) sur la cellule à côté de la date or les dates peuvent être modifiées mais le "oui" reste tout de même.

Ainsi comment faire pour que si la date est changée dans la cellule alors le oui disparait ou pour éviter les doublons ?

Un grand merci d'avance pour votre aide.

Voici ma macro pour une meilleure compréhension de mon problème

Option Explicit

Sub AjoutRV()

Dim DLig As Long, Lig As Long

Dim OutObj As Outlook.Application

Dim OutAppt As Outlook.AppointmentItem

Dim DateRdv As Date, FlgRdv As Boolean

' CrŽer une instance d'Outlook

Set OutObj = CreateObject("outlook.application")

' Avec la feuille

With Sheets("vm out")

DLig = .Range("A" & Rows.Count).End(xlUp).Row

' Pour chaque ligne

For Lig = 2 To DLig

' VŽrifier si pas dŽjˆ fait

If .Range("D" & Lig) <> "" Then

' Si dŽjˆ fait, vŽrifier si le commentaire ˆ changŽ

If .Range("D" & Lig).Comment.Text <> .Range("C" & Lig).Value Then

FlgRdv = True

Else

FlgRdv = False

End If

Else

FlgRdv = True

End If

' Si le FLAG est ˆ vrai on crŽŽ le RDV

If FlgRdv Then

DateRdv = Range("B" & Lig)

Set OutAppt = OutObj.CreateItem(olAppointmentItem)

With OutAppt

.Subject = "Convoquer " & Sheets("vm out").Range("A" & Lig) & " pour " & Sheets("vm out").Range("C" & Lig)

.Start = DateRdv & " 08:00"

.Duration = 60

.ReminderSet = True

.Save

End With

' CrŽer le commentaire et inscrire Oui

On Error Resume Next

.Range("D" & Lig).Comment.Delete

.Range("D" & Lig).AddComment Text:=.Range("C" & Lig).Value

.Range("D" & Lig) = "Oui"

On Error GoTo 0

End If

Next Lig

End With

Set OutAppt = Nothing

End Sub

Bonsoir Harrybeefy,

Ce n'est pas quand la macro AjoutRV s'exécute qu'il faut le faire, mais quand l'utilisateur modifie l'heure du rendez-vous avec l'événement Worksheet_Change :

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Count = 1 And Target.Column = 1 Then ' Colonne A
      Application.EnableEvents = False
      Target.Offset(0, 1) = Empty ' Efface la cellule de droite de la cellule active (colonne B)
      Application.EnableEvents = True
   End If
End Sub

A mettre dans le module de la feuille et à adapter à ton besoin.

Ce que je ne comprend pas : si on change l'heure du rendez-vous, tu enregistres le nouveau dans Outlook, mais que fais-tu de l'ancien ? La logique voudrait que tu le supprimes ! Non ?

Rechercher des sujets similaires à "generer rendez outlook"