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 :

Comment modifier un Rendez vous dans Outlook avec une macro Excel


Sujet :

VBA Outlook

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Points : 141
    Points
    141
    Par défaut Comment modifier un Rendez vous dans Outlook avec une macro Excel
    Bonjour à tous, bonjour le forum
    Je cherche à modifier un rendez-vous dans Outlook.
    J'ajoute des rendez vous dans mon calendrier en partant d'un classeur Excel, dans lequel j'ai fait une macro qui m'ajoute bien tous mes rendez vous et chaque fois que j'ajoute des rendez-vous dans ma feuille Excel, et que je clique mettre à jour, cela m'ajoute bien les nouveaux rendez-vous, que j'ai ajouté à ma feuille Excel.
    Cette partie est OK, mais comment retrouver les Rendez-vous dans Outlook 2010 ?
    Je souhaite, quand je vais cocher, une colonne terminé de ma feuille rendez-vous de mon fichier Excel, et que je cliquerai mettre à jour, pouvoir rechercher le ou les cochés terminé dans ma feuille, et trouver le rendez-vous dans Outlook, et le modifier en ajoutant à mon sujet par exemple "Terminé"
    J'ai eu confirmation que c'était possible, mais en ce qui me concerne, je n'ai rien trouvé sur ce forum me permettant de réaliser mon souhait.
    merci d'avance pour vos réponses
    Papou

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    SAlut,

    il faut d'abords le trouver
    soit tu as copié dans ton fichier excel le EntryID du rdv lors de la création
    --> GetItemFromID

    soit tu dois retrouver le rdv selon ses critères :

    http://msdn.microsoft.com/fr-fr/libr...ffice.15).aspx

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Points : 141
    Points
    141
    Par défaut Comment modifier un Rendez vous dans Outlook avec une Macro Excel
    Bonjour Oliv- le forum
    Merci Oliv, je vais essayer de me débrouiller avec cela, le GetItemFromID je ne risquais pas de l'enregistrer puisque je ne savais pas qu'il existait!!
    Mais maintenant que tu le dis, je vais le faire comme cela je suppose que je pourrai directement modifier mon rendez-vous??
    a+
    Papou

    PS: je reviens vers toi pour t'informer des que j'ai fait les modifications, mais ce ne sera pas avant demain.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonjour Oliv le forum
    bon alors voilà peux tu modifier la macro ci-dessous de manière à récupérer les données contenus dans EntryID que j'ai mémorisé dans ma feuille excel
    mais je n'arrive pas à trouver comment remplir les différentes valeur que j'aurai éventuellement à modifier
    pouvez vous complèter mon code SVP
    merci d'avance
    Papou

    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
    Sub Modif()
        Dim Ol As New Outlook.Application, rv As Outlook.AppointmentItem, deb As Date, i&, dur&, n&, a&
        With Feuil1
            For i = 3 To .Range("B" & Rows.Count).End(xlUp).Row
                If .Cells(i, 7) = "" And .Cells(i, 9) <> "" And .Cells(i, 10) <> "" Then
                    Set rv = .Cells(i, 10) '      .Cells(i,10) contient le EntryID du rendez Vous de la ligne i
                                                                 'maintenant comment retrouver les différents éléments ci-dessous pour remplacer les ? et
                                                                 remplir là ou il y a "?" merci d'avance
                    With rv
                        .Subject = "?"
                        .Body = "?"
                        .Location = "?"
                        .Start = "?"
                        .Duration = "?"
                        .Categories = "?"
                        .Save
                    End With
                    .Cells(i, 10) = rv.EntryID
                    Set rv = Nothing
                End If
            Next i
        End With
        Set Ol = Nothing
    End Sub

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    Voici un exemple qui va retrouver ton rv à partir de l'entryid

    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
    Sub test_getRDV()
    Dim rv As Outlook.AppointmentItem
    Dim StrID As String
    StrID = "00000000762056220F897F4AA3A8C342ACB4D749070090838DC7AE4ADC48AF1F986D45E17DD30000008354FB0000001CA02353BC3541B831F7440EB4D5C40027A14383000000"
    Set rv= getRDV(StrID)
    'ici soit on l'affiche 
    rv.Display
    'soit on modifie des choses dans le rdv
    rv.Subject = "toto"
    rv.save
    End Sub
     
    Function getRDV(StrID As String) As Outlook.AppointmentItem
        Dim olNS As Outlook.NameSpace
        Set olNS = Application.GetNamespace("MAPI")
        Dim LaDemandeDeReunion
        On Error Resume Next
        Set LaDemandeDeReunion = olNS.GetItemFromID(StrID)
     
        If Not LaDemandeDeReunion.Class = olAppointment Then
        MsgBox "Pas trouvé"
        Else
            Set getRDV = LaDemandeDeReunion
        End If
    End Function

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonsoir Oliv le forum
    Merci pour tout Oliv, je ne suis pas passé par ta fonction, mais je remet l'exemple au complet.
    Donc voilà le code au complet avec tous les éléments, duration start et end, etc., dans mon cas, cela ne sert à rien, mais pour l'exemple, si un autre forumeur veut pouvoir adapter facilement
    il n'aura pas à chercher, d'autant que l'aide Outlook est "sans exemple" et bien vide sur le sujet à mon gout.
    Concernant l'EntryID, elle se trouve dans mon cas en colonne J (10)
    Merci et bonne soirée
    Papou

    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
    Sub Modif()
        Dim ol As Outlook.Application, rv As Outlook.AppointmentItem, loc As Outlook.Namespace, i&
        With Feuil1
            For i = 3 To .Range("B" & Rows.Count).End(xlUp).Row
                If .Cells(i, 7) <> "" And .Cells(i, 9) <> "" And .Cells(i, 10) <> "" And .Cells(i, 8) = "" Then
                    Set ol = Outlook.Application
                    Set loc = ol.GetNamespace("MAPI")
                    Set rv = loc.GetItemFromID(Cells(i, 10))
                    With rv
                        .Subject = "Fini " & .Subject
                        .Body = .Body    'là je remet pareil mais c'est pour montrer que l'on peut aussi modifier les autres paramètres
                        .Location = .Location
                        .Start = .Start
                        .Duration = .Duration
                        .Categories = .Categories
                        .Save
                    End With
                    .Cells(i, 10) = rv.EntryID
                    .Cells(i, 8) = "X"
                    Set rv = Nothing
                End If
            Next i
        End With
        Set ol = Nothing
    End Sub

Discussions similaires

  1. [AC-2007] Création rendez-vous dans Outlook 2007 en VBA
    Par bibichris dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/06/2017, 11h19
  2. [XL-2007] Rechercher et remplacer du texte dans word avec une macro excel
    Par littlepower dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2015, 07h59
  3. Mise à jour des rendez vous dans Outlook
    Par pkrvz dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/02/2008, 20h46
  4. Ajouter un rendez-vous dans Outlook avec PHP
    Par Mut dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2007, 14h05
  5. Réponses: 3
    Dernier message: 19/07/2007, 19h21

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