Synchroniser Excel avec le calendrier Outlook 2016
Résolu
Le_Maniouk
Messages postés
317
Date d'inscription
Statut
Membre
Dernière intervention
-
Le_Maniouk Messages postés 317 Date d'inscription Statut Membre Dernière intervention -
Le_Maniouk Messages postés 317 Date d'inscription Statut Membre Dernière intervention -
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 :
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,
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:
- Synchroniser Excel avec le calendrier Outlook 2016
- Synchroniser calendrier outlook et gmail - Guide
- Liste déroulante excel - Guide
- Mon calendrier - Télécharger - Santé & Bien-être
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
1 réponse
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.
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à ;)
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à ;)