excel vers calendrier outlook

YannC.

XLDnaute Occasionnel
Bonjour à tous,

Suite à votre aide et à mes recherches, j'ai réussi à faire un code complet qui permet d'envoyer des informations dans un calendrier perso d'outlook, en évitant les doublons.

Voici le code :
Private Sub calendrier_Click()
Dim DateDebut As String
Dim OutlItems As Outlook.Items
Dim OutlAppointment As Outlook.AppointmentItem
Dim myOlApp As New Outlook.Application
Dim MyCalendar As Outlook.Items
Dim MyItem As Outlook.AppointmentItem
Dim myNamespace As Outlook.Namespace
Dim Cell As Range
Dim cal As String

'plage de donnée
cal = Sheets("Menu").Range("P3")
For Each Cell In Sheets(cal).Range("E2:E60")
'fin de plage de donnée
If Cell <> "" Then 'recherche dans la plage si il existe des données à inscrire
DateDebut = Cell.Offset(0, -2) & " " & Cell.Offset(0, -1) 'date pour vérification de doublons
'verifie s'il y a des doublons
On Error Resume Next
Set OutlAppointment = OutlItems.Find("[Start] = '" & DateDebut & "'")
On Error GoTo 0
'fin vérification doublon

If OutlAppointment Is Nothing Then 's'il n'y a pas de doublons lancement du code
'On choisi le calendrier
Set myOlApp = CreateObject("Outlook.Application")
'Concernant la ligne suivante après le ("MAPI")
' Folders.Item(1) : correspond au dossier Personnel
' Folders.Item(5) : correspond au dossier Calendrier standard
' Folders.Item(1) : correspond au sous calendrier, s'il y en a d'autre remplacer par le n° d'index...
Set MyCalendar = myOlApp.GetNamespace("MAPI").Folders.Item(1).Folders.Item(5).Folders.Item(1).Items 'choix calendrier perso
'Fin choix calendrier
Set MyItem = MyCalendar.Add(olAppointmentItem) 'Set MyItem = myOlApp.CreateItem(olAppointmentItem)
With MyItem 'inscription des données dans outlook
.MeetingStatus = olNonMeeting 'meeting
.ReminderSet = False ' S'il y a un rappel
.Subject = Cell.Offset(0, 2) 'Sujet
.start = Cell.Offset(0, -2) & " " & Cell.Offset(0, -1) ' Date plus heure. Attention : format mm/dd/yy
.AllDayEvent = False ' Toute la journée oui/non
.Duration = 105 'minutes"
.Location = Cell.Offset(0, 1) 'emplacement et body pour les commentaires ou sujets
.body = "N° : " & Cell.Offset(0, 0)
.Save
End With
Set MyItem = Nothing

Else: Next Cell 'si il y a deja un RDV alors retour vers date suivante
End If

Else: Cell = "" 'si la plage de donnée est vide on quitte le macro
Exit Sub

End If
Next Cell 'tant que les cellules de la plage est complete on relance le macro
End Sub

Mais voilà, depuis que j'ai rajouté la partie de code qui permet de choisir le calendrier, j'ai un probleme à la ligne
Else: Next Cell 'si il y a deja un RDV alors message
End If

Il me marque comme message
Next sans For
. Mais pourtant j'ai bien mon 'For en début de code.

Alors si vous pouviez m'aider à résoudre ce probleme, cela serait génial.

Merci

Le linuxien
 
Dernière édition:

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Oui c'est pour cela que dans le derniers message (on as tu se croiser) je te conseille de laisser tomber le faite de cocher la case journée complete mais de mettre une durée de RDV correspondant à une journée.
 

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

Bonsoir tout le monde et en particulier le Linuxien qui m'a plus qu'aidé sur ce sujet

Après avoir manipulé les 2 programmes et mes les avoir un peu approprié, je me retrouve avec 2 programmes qui ont chacun leurs défauts.

Voici 2 fichiers :
Le 1er (« Copie de calendrier1-1 ») est génial car il fait tout ce que je veux.
Il a un gros avantage sur le 2ème car il ne créé pas de doublon.
Il a également un bouton qui permet de voir si il a créé des RDV ou pas (de façon vraiment limité)
Mais il a 2 défauts :
- Le 1er est que quand je mets le code pour que la case "journée entière" soit cochée dans Outlook, celui-ci ne la coche pas et ne la prends pas vraiment en compte. Si il l’a prend en compte(l’accepte mais ne coche pas la case) ; si je mets « vrai » pour « journée », le respect des doublons ne marche plus pour ce RDV

- L’autre (« GestionCalendrierOutlook_CreationRDV ») défaut est que j’ai essayé de déplacer la colonne A et B pour les mettre entre D et E, mais ça marche pas. J’ai pourtant modifié les valeurs dans le programme.

Le 2ème est bien car il prend bien en charge la valeur « vrai » de la colonne « journée » mais comme dit précédemment, il ne prends pas en charge les doublons. De plus l’ordre des colonnes me convient tout à fait. Par contre j’aimerai rajouter une colonne avec le temps du rappel (sur le 1er programme aussi).

Donc je me retrouve avec un problème que je n’arrive pas à résoudre malgré mes nombreux mix entre les 2 formules qui sont presque terminées.

J'espère que quelqu'un pourra m'aider et je suis sûr que c'est une formule qui pourra intéresser du monde.

Merci de votre aide

Lyric
 

Pièces jointes

  • Copie de calendrier1-1.xlsm
    28.8 KB · Affichages: 258
  • GestionCalendrierOutlook_CreationRDV.xls
    41.5 KB · Affichages: 283
  • GestionCalendrierOutlook_CreationRDV.xls
    41.5 KB · Affichages: 320
  • GestionCalendrierOutlook_CreationRDV.xls
    41.5 KB · Affichages: 323

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour à vous tous,

Le fichier fonctionne maintenant parfaitement. Son but est de lier les informations Excel avec le calendrier Outlook. Il y intègre les risques doublon, les rappels, les journées entières,...
Un des premiers fichiers complet pour cette fonction sur ce forum.

Pour que le fichier fonctionne et qu'il y ai une relation entre Excel et Outlook, il faut installer :

Yahoo synchronisation. (Utile pour le choix de calendrier dans outlook).

Pensez à cocher dans la macro les références suivantes:

  • 'Reference importante : Microsoft Outlook xx Object library
  • 'Reference importante sinon erreur automation : OutlookNotifier 1.0 type library( il faut installer 'Yahoo Synchronisation pour voir apparaitre cette réference)

Pour choisir un calendrier autre que celui par default, effectuez la démarche suivante :

Dans Excel, cliquer sur F11 et à la ligne 42 "Set OutlItems = OutlFolder.Folders("essai").Items ' Nom du calendrier - Attention calendrier ajouté en dessous du calendrier par default et nom dans un nouveau groupe.", remplacer 'essai' par le nom de votre calendrier.

Pour choisir le calendrier par défaut, effectuer la démarche suivante :

Dans Excel, cliquer sur F11 et rajoutez un apostrophe (') devant la ligne 42 puis supprimez celui qui se trouve devant la ligne 43.

Merci à tous pour votre aide dans la mise en place et la création de ce fichier. Bonne fin de journée

Le linuxien
 

Pièces jointes

  • calendrier.xlsm
    31.3 KB · Affichages: 280
  • calendrier.xlsm
    31.3 KB · Affichages: 272
  • calendrier.xlsm
    31.3 KB · Affichages: 254
  • calendrier.zip
    21.4 KB · Affichages: 141
  • calendrier.zip
    21.4 KB · Affichages: 182
  • calendrier.zip
    21.4 KB · Affichages: 168

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

Un grand merci à Toi Ô Linuxien!!

Ton aide, ou devrais-je plutôt dire le fichier que tu as créés m'a été d'un grand secours.

J'espère qu'il servira à d'autres personnes de ce forum car ce fichier est vraiment génial.

J'ai un gain de temps énorme depuis.

Merci encore Le Linuxien.

Lyric
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour à tous,

Une petite mise à jour, qui permet de mettre à jour un rdv sans avoir de doublons dans le calendrier.

Bonne journée à tous
 

Pièces jointes

  • calendrier2.xlsm
    32.5 KB · Affichages: 359
  • calendrier2.xlsm
    32.5 KB · Affichages: 404
  • calendrier2.xlsm
    32.5 KB · Affichages: 427

MikaTI

XLDnaute Junior
Re : excel vers calendrier outlook

Bonjour à tous,

Une petite mise à jour, qui permet de mettre à jour un rdv sans avoir de doublons dans le calendrier.

Bonne journée à tous

Bonjour

Je me permets de faire remonter ce sujet qui date...
Le fichier est extraordinaire...
J'ai pu apporter quelques modifications dans les codes pour l'adapter à mon tableau.
Seul petit hic, me concernant...
Pour un rendez vous, lorsque je modifie la date de rdv, ça me fait laisse tout de même le rendez vous initial dans mon calendrier.
Exemple : rdv initiale le 19/01/2016 que je modifie ensuite au 21/01/2016... Sur mon calendrier, j'ai du coup les deux rdv...
Une petite astuce pour cela?

Merci bien :)
 

KENZABEN

XLDnaute Nouveau
Re : excel vers calendrier outlook

Bonjour,

Je suis intéressée par ce type d'application j'ai donc repris "Copie de calendrier 1-1" mais il y a quelques commentaires que je n'arrive pas à comprendre :
'Reference importante : Microsoft Outlook xx Object librairy
'Reference importante sinon erreur automation : OutlookNotifier 1.0 type librairy
'Installer pour cela Yahoo Synchronisation qui rajoute l'option OutlookNotifier 1.0 type librairy

Et je ne sais pas où il faudrait écrire ce code.

Merci beaucoup pour ton aide, je suis débutante en VBA. :confused:
 

KENZABEN

XLDnaute Nouveau
Re : excel vers calendrier outlook

Bonjour Le linuxien,

Toujours concernant ce super fichier! je n'arrive pas à trouver Yahoo Synchronisation sur le net , est-il possible d'utiliser ce code sans télécharger ce logiciel. Merci beaucoup pour ce fichier !
 

Discussions similaires

Réponses
1
Affichages
168
Réponses
0
Affichages
153

Statistiques des forums

Discussions
312 216
Messages
2 086 340
Membres
103 192
dernier inscrit
Corpdacier