Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1916 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Syncronisatoin calendrier outlook VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Syncronisatoin calendrier outlook VBA

n°1819947
darknewbie​31
Posté le 01-12-2008 à 15:19:07  profilanswer
 

Bonjour,
 
Chacun des utilisateurs du réseau a un compte de messagerie utilisable via outlook.
Chacun a un fichier de donnée sur son propre poste et un sur le serveur exchange.
Mon problème est que du coup les utilisateurs possede deux calendrier.
 
Pour des raisons de compatibilité avec d'autre programme et de gestion, il ets préférable d'utiliser le calendrier qui est sur le poste de l'utilisateur et non sur le serveur.
 
Je cherche donc a crée un script permetant de copier ce calendrier sur le serveur dès que un nouveaux rendez vous est crée.
 
Pour le moment j'arrive a afficher un message lors de la modification, création, supression d'éléments, mais je ne sais pas comment les copier sur l'autre calendrier.
De plus je me demande, si l'utilisateur travail hors connexion, les rendez-vous ne pourons pas être syncroniser, seront-il garder en mémoire et synchroniser a la prochaine connexion ou les données seront-elle perdu une fois outlook fermer ?
 
Voici ce que j'ai pour le moment :

Code :
  1. Dim WithEvents colSentItems As Items
  2. Private Sub Application_Startup()
  3. 'pour evenement itemadd
  4.    Dim NS As Outlook.NameSpace
  5.    Set NS = Application.GetNamespace("MAPI" )
  6.    Set colSentItems = NS.GetDefaultFolder(olFolderCalendar).Items
  7.    Set NS = Nothing
  8. 'Fin Section
  9. End Sub
  10. Private Sub colSentItems_ItemAdd(ByVal Item As Object)
  11. 'By Oliv ' janv 2008 pour Outlook 2003 feat. Sue Mosher
  12. MsgBox Item.Subject
  13. End Sub


 
 
Merci par avance de votre aide.

mood
Publicité
Posté le 01-12-2008 à 15:19:07  profilanswer
 

n°1820975
SuppotDeSa​Tante
Aka dje69r
Posté le 02-12-2008 à 22:10:33  profilanswer
 

Bonsoir
 
Il faut que tu recuperes chaque evenement, regarde s'il existe, et sinon le créer a la main... Debut, fin, Objet, Description etc.
 
Tu as deja un bon debut avec
Set colSentItems = NS.GetDefaultFolder(olFolderCalendar).Items
Ca te permet de recuperer le nom de tes calendriers et de passer de l'un a l'autre pour mettre a jour les proprietes des evenements.
 
Je te laisse aller faire un tour ici ou le sujet et la suite pourrait t'interresser : http://www.developpez.net/forums/d [...] ormations/
 
Si tu as besoin d'aide/indice aucun souci.
 
Cordialement


Message édité par SuppotDeSaTante le 02-12-2008 à 22:29:31

---------------
Soyez malin, louez entre voisins !
n°1821047
darknewbie​31
Posté le 03-12-2008 à 08:53:09  profilanswer
 

Merci beaucoup pour l'info, j'ai regarder, vu que e debute en VBA, j'ai un peu de mal a tout comprendre.
 
J'arrive désormais a recuperer mes evenements et les afficher par MsgBox, et j'ai trouver GetSharedDefaultFolder pour selectionner le calendrier exchange, par contre chaque fois que le code est exécuter, outlook affiche une fenetre demandé si l'utilisateur désire autorisé l'accés au script.
Y aurait il la possibilité d'autoriser cette accés en permanance ?
En faite le faite que le message s'affiche me gêne, le but étant de syncroniser les calendriers de maniere transparente pour l'utilisateur, sans qu'il ai quoique ce soit a faire.


Message édité par darknewbie31 le 03-12-2008 à 11:09:50
n°1821769
SuppotDeSa​Tante
Aka dje69r
Posté le 04-12-2008 à 10:01:45  profilanswer
 

Je ne me souviens plus si j'avais reussi a l'enlever cette boite...
Faudrait que je retrouve mes codes...
 
Parcontre, je viens de faire un essai, en faisant une pause de 5 secondes et un SendKey ca a l'air de passer...


---------------
Soyez malin, louez entre voisins !
n°1821805
SuppotDeSa​Tante
Aka dje69r
Posté le 04-12-2008 à 11:06:06  profilanswer
 

Tiens ca devrait t'aider.
 

Citation :

Sub darknewbie31()
 
Set MonApp = Outlook.Application
Set MonNameSpace = MonApp.GetNamespace("MAPI" )
 
'On pointe sur le calendrier pour chercher les valeurs a copier
Set MonDoss = MonNameSpace.GetDefaultFolder(olFolderCalendar) 'ou le GetSharedDefaultFolder
 
'Pour chaque evenements, on va le copier dans l'autre calendrier
For Each EvenCalend In MonDoss.Items
    'On defini les variables de l'evenement, debut, fin, sujet etc.
    Sujet = EvenCalend.Subject
    DateDeb = EvenCalend.Start
    DateFin = EvenCalend.End
    Texte = EvenCalend.Body
    Lieu = EvenCalend.Location
     
    'On fait pointer sur le secon calendrier, celui ou on va copier les infos.
    Set MonDoss2 = MonNameSpace.GetDefaultFolder(olFolderCalendar)
    Set MonSousDoss = MonDoss2.Folders(1) 'si tu plus de calendrier il faut mettre le bon numéro de calendrier
     
    'On cree un nouvel evenement sur le second calendrier
    Set MonObj = MonSousDoss.Items.Add(olAppointmentItem)
     
    'On affecte les variables precedentes a début, fin, sujet etc.
    MonObj.Start = DateDeb
    MonObj.End = DateFin
    MonObj.Subject = Sujet
    MonObj.Body = Texte
    MonObj.Location = Lieu
     
    'On ferme et on sauvegarde.
    MonObj.Close olSave
     
    'MonObj.Display
     
Next EvenCalend
 
End Sub


 
J'ai fait ca en 10mn, il manque deux trois choses... A toi de l'ameliorer, notament a tester si l'evenement existe deja, et si oui, bah ne pas le dupliquer etc.
 
Et là, aucune boite de dialogue normalement...
 
Cordialement


Message édité par SuppotDeSaTante le 04-12-2008 à 11:07:59

---------------
Soyez malin, louez entre voisins !
n°1822670
darknewbie​31
Posté le 05-12-2008 à 20:00:21  profilanswer
 

Merci de ton aide, je vais tester ca et voir comment je peux rajouter ce qui manque pour éviter les doublon, supprimer ...
 
EDIT : bon en faite projet abandonné, trop compliqué et surtout trop instable, impossibilité d'avoir une correspondance en mode hors ligne etc ...
Du coup j'ai réussi a faire adopté un changement de politique en matière de serveur exchange et gestion de mail, les utilisateurs se retrouve avec un seul calendrier, plus de soucis.
 
Merci beaucoup de ton aide, qui m'ai fort aidé même si le projet n'a pas abouti :)


Message édité par darknewbie31 le 08-12-2008 à 18:17:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Syncronisatoin calendrier outlook VBA

 

Sujets relatifs
Programmation VBAAffichage de champs de plusieurs tables ds formulaire [ACCESS/VBA]
Problème avec la fonction Vlookup [VBA Excel] VBA: Créer un boutton dynamiquement ?
derniere semaine du mois ? [VBA Excel] [RESOLU]Chercher répertoire en VBA Macro Excel
VBA - C++ - DLLCherche projet VBA EXCEL
[SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas[PHP/JAVA] Calendrier avec menu avec choix booléen sur chaque jour
Plus de sujets relatifs à : Syncronisatoin calendrier outlook VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR