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:

julienplan

XLDnaute Nouveau
Re : excel vers calendrier outlook

ok, je sais maintenant que j'ai bien la version 2003 Outlook 11.0 et la version 2003 excel aussi...
la macro me dit toujours :
"erreur de compilation:type défini par l'utilisateur non défini"
en m'indiquant ceci dans le code: OutlApp As New Outlook.Application
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour JulienPlan,

Le probleme des erreurs d'automation, c'est qu'elles sont très vague.

Voir le lien suivant pour une explication supplementaire : Erreur Automation l'aide d'Excel dans la procédure Visual Basic.

Pour ton probleme, il nous faudrait en exemple ton classeur, car ce type d'erreur viennent soit d'une erreur de code lier par le code actuel du calendrier.

Tiens moi au courant

Le linuxien

P.S. : Et si tu peux mettre ton classeur...

P.S. Suite : Après avoir mis à jour ma version d'office aujourd'hui (installation de la spé sur 2007), il me marque l'erreur automation au niveau de la ligne qui choisi les calendriers.

Je fais des recherches pour savoir pourquoi, et est ouvert un post pour cette erreur. Je te tiens au courant, car l'erreur viens surment d'un changement de parametre d'office. Il ne nous reste plus cas trouver quelle nom ils ont modifié.
 
Dernière édition:

julienplan

XLDnaute Nouveau
Re : excel vers calendrier outlook

je ne sais pas si c'est bien utile que je mette encopie mon classeur, car pour l'instant c'est exactement celui que tu as mis en fichier zip dans le forum.

je n'ai pas touché d'un poil au code

j'ai simplement téléchargé ton fichier, installé une copie sur mon bureau,coché les réf manquantes et j'attendais de voir les quelques lignes sur durant et dupont s'inscrire comme par magie dans mon calendrier outlook simplement en appuyant sur le bouton.

je pensais ensuite pouvoir l'adapter sur un autre fichier excel ou j'ai de nombreuses dates d'arrivées de bateaus, d'avions etc..

pour l'instant en cliquant sur le bouton il me mets :mémoire insuffisante, et en allant voir dans le code, lorsque je l'execute sous le nom de la macro "feuille1.calendrier_click" il me dit que l'index de la matrice est en dehors de ses limites...??
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour JulienPlan,

Tu vas etre heureux, je viens de passer toute la nuit à regler ce probleme qui est effectivement du à une mise à jour d'office mais aussi à un programme manquant.

Comme tu l'avais remarqué il y avait une référence manquante. Pour rajouter la librairy et faire fonctionner le code il faut installer yahoo synchronisation. (Pas besoin de le configurer)

Et là par miracle tous fonctionnes. Bon j'ai modifier du code particulierement au niveaux des idems pour le mettre à jour.

Lien vers yahoo synchro : http://calendar.yahoo.com/?v=120&pv=61

Bon courage et bonne semaine.

Tu verras, pour moi le calendrier personelle est nommé "discours" donc change le nom.

Le linuxien

Si tu as besoin je reste à ta disposition

Bye
 

Pièces jointes

  • calendrier.xlsm
    24.2 KB · Affichages: 92
  • calendrier.xlsm
    24.2 KB · Affichages: 97
  • calendrier.xlsm
    24.2 KB · Affichages: 100

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

Bonjour à tous,

Je me permet de m'immiscer dans ce post car je trouve cela très intéressant et je cherchais un programme de ce genre.

J'avais déjà un truc similaire mais il ne prenait pas en compte les doublons, chose qui est faite dans celui-ci.

Par contre quand j'ai remarqué des "erreurs" dans la page. Pardonnez moi si je me trompe car je suis vraiment novice, mais quand on importe les données, le lieu n'est pas pris en charge (si oui où?), par contre la colonne 2009 renvoie les données dans emplacement dans le RDV.

De plus da
 

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

désolé erreur de manipulation mon message est parti trop tôt.

je disais que dans le code j'ai trouvé cette phrase:
.AllDayEvent = False ' Toute la journée oui/non

Comment fait-on pour choisir cette option dans le fichier?

Merci de vos éclaircissements, surtout que ce n'est pas mon topic originel.

Lyric

PS: je vous mets en pièce jointe le fichier que j'avais pour exporter les RDV sur Outlook si ça peut aider
 

Pièces jointes

  • GestionCalendrierOutlook_CreationRDV.zip
    9.7 KB · Affichages: 63
  • GestionCalendrierOutlook_CreationRDV.zip
    9.7 KB · Affichages: 67
  • GestionCalendrierOutlook_CreationRDV.zip
    9.7 KB · Affichages: 69

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

*J'ai 5mn donc voila une explication.

dans la partie du code
With MyItem 'inscription des données dans excel
.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 ou lieu
.Body = 'body pour les commentaires ou sujets

Pour la Fonction "AllDayEvent" il te suffit de rajouter une colonne dans ton tableau avec soit "False ou True" et te renvoyer l'information dans la macro avec
.AllDayEvent = Cell.Offset(0, 4)

Je t'ai mis la modif dans ton fichier.

Amuse toi bien

Le linuxien
 

Pièces jointes

  • GestionCalendrierOutlook_CreationRDV.xls
    39 KB · Affichages: 174
  • GestionCalendrierOutlook_CreationRDV.xls
    39 KB · Affichages: 179
  • GestionCalendrierOutlook_CreationRDV.xls
    39 KB · Affichages: 158

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

Bonjour le Linuxien,

C'est exactement cela, pour moi emplacement correspond au lieu du RDV.

Si je peux me permettre d'être exigeant, je voudrais aussi pouvoir choisir si le RDV est sur la journée ou si il est sur une durée déterminée (X minutes).

Pour terminer (je sais ça fait beaucoup), je souhaiterais avoir une case où je mette ma description du RDV.

Je saurais attendre ce soir pour avoir ma solution ;)

Lyric

PS: je joint un modèle de ce que je souhaiterait, en laissant le code sans les ajouts.
 

Pièces jointes

  • Export RDV Excel vers Outlook.xlsm
    27 KB · Affichages: 100

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

C'est exactement ce que je voulais c'est nickel.

Le seul petit hic par rapport au fichier du début de ce topic, c'est que les doublons sont autorisés et j'aimerais que si on relance l'opération, les RDV déjà enregistrés ne soient pas marqués en double.

C'est possible???

C'est ma tout dernière requête, promis:D

Lyric
 

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

Bonjour,

Je te met le fichier, et effectivement lorsque l'on choisi un RDV pour une journée complete le RDV se recopie à chaque fois. Je travail dessus et tu auras cela ce soir

le linuxien
 

Pièces jointes

  • calendrier1.xlsm
    27.6 KB · Affichages: 86
  • calendrier1.xlsm
    27.6 KB · Affichages: 83
  • calendrier1.xlsm
    27.6 KB · Affichages: 83

YannC.

XLDnaute Occasionnel
Re : excel vers calendrier outlook

bonjour cyoulyric,

Voila le fichier fonctionnelle comme tu le voulais. Par contre il y a un probleme lorsque l'on veux mettre une journée entiere alors dans ce cas la pour le RDV il ne te reste plus cas mettre en durée 12h ce qui fait exactement la même chose et ainsi plus te probleme de doublon.

Voir P.J.

Le linuxien
 

Pièces jointes

  • calendrier1.xlsm
    27.6 KB · Affichages: 101
  • calendrier1.xlsm
    27.6 KB · Affichages: 107
  • calendrier1.xlsm
    27.6 KB · Affichages: 112

cyoulyric

XLDnaute Nouveau
Re : excel vers calendrier outlook

Je te remercie beaucoup, j'ai vraiment l'impression d'abuser de ta gentillesse.

En regardant un peu le programme et en l'essayant j'ai remarqué que si je coche journée entière, non seulement il y a doublon si on relance l'opération (ça tu me l'avais dit), mais aussi quand on va sur le RDV, la case "journée entière" n'est pas cochée et qu'elle n'est pas répertoriée comme tel.

Décidément avec VBA, tu fixes un souci, tu en créés un autre.

Heureusement qu'on a des experts comme vous pour s'en sortir.

Lyric
 

Discussions similaires

Réponses
49
Affichages
986
Réponses
1
Affichages
384

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 107
dernier inscrit
cdel