Synchroniser Excel avec le calendrier Outlook 2016

Résolu/Fermé
Le_Maniouk Messages postés 317 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 20 septembre 2019 - 11 oct. 2016 à 18:06
Le_Maniouk Messages postés 317 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 20 septembre 2019 - 12 oct. 2016 à 13:13
Bonjour,

Je cherche à synchroniser mes données excel avec mon calendrier Outlook. En cherchant sur Internet, j'ai réussi à trouver un code qui fonctionne :

Sub NouveauRDV_Calendrier()
'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
Dim OkApp As New Outlook.Application
Dim Rdv As Outlook.AppointmentItem

Set Rdv = OkApp.CreateItem(olAppointmentItem)

With Rdv
.MeetingStatus = olMeeting
.Subject = [D4]
.Body = [F4]
.Location = [E4]
.Start = [B4] ' Attention : format mois/jours/année
.Duration = 60 'minutes
.Save
End With

Set OkApp = Nothing
End Sub



Mais ce que je cherche c'est que plutôt que de me sélectionner la cellule, qu'il me sélectionne la colonne.

Ex : En D4, j'ai le nom de mon RDV, donc il me crée un RDV.
En D5, j'ai le nom d'un autre RDV, donc je voudrais qu'il me crée un autre RDV en plus sur le calendrier d'Outlook et ainsi de suite.

En fait, au niveau du code Subject, Body etc... je voudrais la colonne entière.

J'utilise mon fichier pour faire un rapport hebdomadaire de mon activité professionnelle.

Je suis novice en VBA.

Vous en remerciant d'avance,
A voir également:

1 réponse

Le_Maniouk Messages postés 317 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 20 septembre 2019 158
12 oct. 2016 à 13:13
Bon au final j'ai trouvé tout seul ^^

Pour ceux qui cherche, je vous donne le code. A savoir que j'ai créé une colonne en plus avec à l'intérieur un menu déroulant (OUI, NON, TERMINE).

Ce qui fait que si c'est sur "NON", ça ne fais rien, si c'est sur "OUI" ça me le synchronise automatiquement dans mon calendrier Outlook et par contre si c'est sur "TERMINE" ça me synchronise la mise à jour sans créer de doublons sur mon calendrier.

Private Sub Worksheet_Change(ByVal Target As Range)
If UCase(Target) = "OUI" Then
Dim OlApp As Outlook.Application

Dim olAppItem As Outlook.AppointmentItem

Set OlApp = GetObject("", "Outlook.Application")

Set olAppItem = OlApp.CreateItem(olAppointmentItem)

With olAppItem

.Start = Range("b" & Target.Row).Value
.Subject = Range("d" & Target.Row).Value
.Location = Range("e" & Target.Row).Value
.Body = Range("f" & Target.Row).Value
.Duration = 60
.ReminderSet = True
.Save

End With
End If
If UCase(Target) = "TERMINE" Then
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myOlApp.ActiveExplorer.CurrentFolder = myNameSpace.GetDefaultFolder(olFolderCalendar)
Set outlookitems = myOlApp.ActiveExplorer.CurrentFolder.Items
Cpte = outlookitems.Count

For x = 1 To Cpte
'exemple de test : si le sujet est "toto" alors on supprime le rdv
If outlookitems(x).Subject = Range("d" & Target.Row).Value Then
outlookitems(x).Delete
End If
Next x
End If
If UCase(Target) = "TERMINE" Then

Set OlApp = GetObject("", "Outlook.Application")

Set olAppItem = OlApp.CreateItem(olAppointmentItem)

With olAppItem
.Start = Range("b" & Target.Row).Value
.Subject = Range("d" & Target.Row).Value
.Location = Range("e" & Target.Row).Value
.Body = Range("f" & Target.Row).Value
.Duration = 60
.ReminderSet = True
.Save

End With
End If
End Sub



En fait, cela me sert à créer mes RDV depuis Excel.

En Colonne B, j'ai la date et l'heure de mon RDV.
En Colonne D, j'ai le NOM de mon RDV.
En Colonne E, j'ai mon lieu de RDV.
En Colonne F, j'ai le commentaire de mon RDV (c'est à dire, Rdv pris par téléphone etc...)

Et le code ci-dessus fait en sorte que, si je modifie mon commentaire de la colonne F tout en ayant le même NOM, cela se met à jour dans Outlook.

Voilà ;)
0