IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Interaction Outlook/Sharepoint VBA


Sujet :

VBA Outlook

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 42
    Par défaut Interaction Outlook/Sharepoint VBA
    Bonjour,
    Dans le cadre d'un projet Sharepoint je rencontre de grosses difficultés à synchroniser des champs personnalisés de type "contacts" avec une liste SharePoint, connectée dans Outlook 2010.

    La clé de ce problème me semble être d'être capable d'intercepter la fin de procédure de synchronisation entre les contacts Outlook et SharePoint (listener au niveau application ?) avant de procéder à un MAJ des champs spécifiques (si on le fait au niveau Item_Write (), j'ai bien peur qu'on ait des mauvaises surprises car il faut gérer le mode "off-line" et le caractère asynchrone ...).

    Savez-vous s'il existe un évènement que je puisse utiliser pour cela ?
    Pouvez-vous me guider pour intégrer cela en VBA dans Outlook 2010 ?

    Merci d'avance !

    P.S : Pour la partie "SharePoint", j'ai aussi cette discussion en cours, qui expose de manière plus détaillée le problème: http://www.developpez.net/forums/d13...int-office365/

  2. #2
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bjr,
    Il faudrais que tu publis une partie de ton code pour mieux comprendre.
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 42
    Par défaut
    Bonjour Oliv et merci d'avoir pris un peu de temps pour me répondre.

    Je n'ai pas de code "publiable"; pour le moment, seulement des bribes de codes que j'essayais d'assembler pour obtenir le résultat de base : connecter Outlook à une liste SP via VBA. Et je dois dire ... que non seulement la documentation est inexistante et les exemples souvent trop spécifiques pour permettre (à un débutant automation comme moi) de les extrapoler.

    J'ai donc pris une décision (qui me semble sage) et me tourne désormais vers des possibilités offertes à la fois nativement par Outlook et Sharepoint (Ol: connexion de la liste en automatique, SP:Champs alimentés par des listes liées) et une programmation plus documentée (VBA Outlook/Access).

    En gros, voici comment je vais tenter de résoudre le problème.

    1. Utilisation de la liaison SP/Outlook native
    2. Création des champs personnalisés en utilisant la capacité de liaison entre les listes SP (en clair : 1 liste standard pour les contacts + 1 liste complémentaire qui contiendra les infos spécifiques, avec une clé de liaison).
    3. Création d'un formulaire personnalisé Outlook rattaché à la liste standard
    4. Création d'une base Access liée à la liste SP des infos spécifiques
    4. Dans le formulaire, utilisation des évènements "item" pour mettre à jour la base Access en local (qui gère la synchro tte seule, comme une grande !)

    J'attaque (et dois avoir fini avant lundi soir ), je vous tiendrai au courant; cela semble être un besoin classique, j'espère que ça aidera certains qui, comme moi, ont ramé des semaines pour finalement ... ne rien trouver à propos d'une solution "directe" !

    N.B: ceci est notamment motivé par la difficulté d'identifier le process clair de synchro SP/Outlook.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 42
    Par défaut
    Un peu de suivi, et une question aux experts

    C'est bien la démarche décrite plus haut qui va être employée.
    Dans un premier temps, je n'ai même pas besoin de lier les infos contacts "standard" et les infos "custom".

    Par contre, j'ai rencontré un problème inattendu.
    Lorsque je change le Message.Class d'un contact pour lui assigner un formulaire personnalisé (via un script VB qui fonctionne parfaitement), la synchro avec SharePoint le réinitialise à la valeur par défaut 'IPM.Contacts' (et personne chez MS ne semble savoir comment/pourquoi ... super).

    Bref, j'ai pondu un peu de code en mode copier/bidouiller, qui me permet de forcer le Message.Class à la valeur qui me va bien, à priori suffisamment longtemps pour ouvrir le bon formulaire. L'idée est de le modifier dès qu'un contact est sélectionné dans la liste des contacts, puis de l'ouvrir immédiatement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Application_ItemLoad(ByVal Item As Object)
    Set contactsFolder = Application.ActiveExplorer.CurrentFolder
    Dim objApp As Outlook.Application
    Set objApp = Application
    'On Error Resume Next <= commented for debug
        Select Case TypeName(objApp.ActiveWindow)
           Case "Explorer"
              Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
              doIt = True
           Case "Inspector"
              doIt = False
        End Select
    
        If GetCurrentItem.Class = olContact And contactsFolder = "Site d'équipe - FNAEM CONTACTS" And doIt = True Then
            doIt = False
            strForm = "IPM.Contact.FNAEM3103"
            If GetCurrentItem.MessageClass <> strForm Then
                GetCurrentItem.MessageClass = _
                strForm
                GetCurrentItem.Save
            End If    
            GetCurentItem.Display '<= IL EST LA LE BIG PROBLEME
            Set objApp = Nothing
        End If
    
    End Sub
    Pour le changement, pas de blème; ça marche !
    Par contre, je n'arrive pas à ouvrir le formulaire (avec les données du contact dedans) via ma procédure (message d'erreur : "424 - objet requis"). Le double click ne va pas non plus, car l'instruction n'a pas le temps de s'exécuter et c'est le form standard qui s'affiche ...
    Et là, je me dis "c'est couillon, si je pouvais le faire juste avant que le formulaire ne s'affiche ("Case 'Inspector'" + "Item_Open" dans le script du formulaire ?), ça serait surement beaucoup mieux !

    Bref, un bon petit coup de main au bidouilleur du samedi-dimanche-lundi-bonjour-ma-vie-de-nerd serait super bienvenu !!!

    P.S : les informations contenues dans la partie "spécifique" du formulaire sont destinées à être stockées dans une base access, dont pas trop de stress à priori avec la perte des données liée aux custom forms.

    Merci d'avance,
    Antoine

Discussions similaires

  1. envoi mail outlook avec vba excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2010, 10h45
  2. créer tâche OUTLOOK depuis VBA EXCEL
    Par dado91400 dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 23/07/2007, 20h27
  3. acces outlook via VBA access
    Par Kuuei dans le forum Access
    Réponses: 1
    Dernier message: 11/12/2006, 11h43
  4. Filtres outlooks en VBA
    Par mikygee dans le forum Outlook
    Réponses: 9
    Dernier message: 20/11/2006, 18h23
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo