générer des rendez-vous outlook depuis excel

Y compris Power BI, Power Query et toute autre question en lien avec Excel
h
harrybeefy
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 27 avril 2014
Version d'Excel : 2003

Message par harrybeefy » 27 avril 2014, 16:58

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
B
Benead
Membre fidèle
Membre fidèle
Messages : 455
Inscrit le : 15 octobre 2011
Version d'Excel : 2007 FR 32bits- 2013 FR 64bits

Message par Benead » 5 mai 2014, 19:23

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 ?
A+
Benoît Marchand
[Benead]
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message