Signaler

Synchroniser Excel avec Calendrier Outlook 2016 [Résolu]

Posez votre question Le_Maniouk 299Messages postés lundi 25 mars 2013Date d'inscription 12 octobre 2016 Dernière intervention - Dernière réponse le 12 oct. 2016 à 13:11
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,
Afficher la suite 
Utile
+0
moins plus
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à ;)
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !