Rdv Outlook avec invitation via VBA

Bonjour à tous !

J'aimerai créer une macro qui créé un Rendez vous outlook à l'aide de plusieurs colonne

J'ai une macro actuelle qui fonctionne mais elle ne permet pas d'inviter quelqu'un à ce rendez vous

Cette macro me permet juste de me mettre des rendez vous dans mon agenda et des rappels

Je vous ai mis en PJ la macro en question

Je souhaite maintenant ajouter la fonction d'invitation via 2 colonnes:

La colonne G indique les initiales de la personne à inviter

La colonne M indique l'adresse mail

L'idée est de faire comme une rechercheV pour qu'il fasse le lien entre les initiales et l'adresse mail

Je sais pas si j'ai été clair?

Après moultes recherches et test, je n'arrive à rien

Pouvez vous m'aider s'il vous plait ?

Merci en tout cas pour votre aide !!!

195test.xlsm (27.42 Ko)

Bonjour Boyoo

Est-ce que tous les interlocuteurs ont le même logiciel de messagerie ?

Quoi qu'il en soit, je procède autrement (car je n'aimerais pas que quelqu'un écrive directement dans mon agenda).

Solution 1 : si tous le monde est dans la même organisation, je préfère créer un agenda partagé.

Solution 2 : envoyer une invitation

Solution 3 avec google agenda ... je ne sais pas si cela fonctionne avec les autres : envoyer un mail avec un lien à cliquer qui va créer le rendez-vous ...

Solution 4 qui a ma préférence : envoyer un mail avec un fichier .ics en pièce jointe comme ici

Bonjour,

Merci pour ta réponse rapide !

On utilise tous Outlook pas Google agenda :/

J'ai vu qu'il est possible de faire avec Excel ICS

Mais je pense que ce sera pas pratique car il y aura 3 ou 4 rdv par jour, je voulais quelque-chose de plus rapide

Je ne souhaite pas écrire dans leur agenda mais envoyer une invitation qu'ils peuvent accepter ou non

Je ne travaille plus avec outlook, mais voici ce que j'utilisais à l'époque via outlook pour les employés de la même société ...

Sub inviter_texte()
Dim messagerie As Object, invitation As Object, participant As Object, montexte As String, cel As Range
Dim ligne As Long
    Set messagerie = CreateObject("Outlook.Application")
    Set invitation = messagerie.CreateItem(1)
    With invitation
        .MeetingStatus = 1
        .Subject = [objet]
        .Location = [lieu]
        .Start = [jour] + [heure]
        .Duration = [duree]
        If [rappel] > 0 Then
            .ReminderSet = True
            .ReminderMinutesBeforeStart = [rappel]
        Else
            .ReminderSet = False
        End If

        ' participants attendus
        ligne = 2
        Do Until Trim$(Cells(ligne, [attendus].Column).Value) = ""
            Set participant = .Recipients.Add(Cells(ligne, [attendus].Column).Value)
            participant.Type = 1
            ligne = ligne + 1
        Loop

        ' participants facultatifs
        ligne = 2
        Do Until Trim$(Cells(ligne, [facultatifs].Column).Value) = ""
            Set participant = .Recipients.Add(Cells(ligne, [facultatifs].Column).Value)
            participant.Type = 2
            ligne = ligne + 1
        Loop

        montexte = ""
        For Each cel In [texte]
            montexte = montexte & cel.Value & vbCrLf
        Next
        .body = montexte
        .display

    End With

End Sub

Cette macro s'appuie sur cette collection de noms ...

capture d ecran 302

C'est exactement quelque chose comme ça que je recherche !

Tu saurais comment intégrer la fonction d'invitation a ma macro ?

Je t'ai fait une fonction

Sub inviter( _
    objet As Range, _
    lieu As Range, _
    jour As Range, _
    heure As Range, _
    duree As Range, _
    rappel As Range, _
    qui As Range)
Dim messagerie As Object, invitation As Object, participant As Object
Dim ligne As Long
    Set messagerie = CreateObject("Outlook.Application")
    Set invitation = messagerie.CreateItem(1)
    With invitation
        .MeetingStatus = 1
        .Subject = objet.Value
        .Location = lieu.Value
        .Start = jour.Value + heure.Value
        .Duration = duree.Value
        .ReminderMinutesBeforeStart = 30
        Set participant = .Recipients.Add(qui.Value)
        participant.Type = 1
        .body = "bla bla bla"
        .display
    End With
End Sub

Il suffit de faire appel dans ta macro à cette fonction en indiquant où se trouve les infos.

Je n'ai pas vu l'heure et la durée du rendez-vous dans ton projet.

Merci beaucoup pour la fonction !

Par contre je n'arrive pas à l'intégrer à ma macro..

Tu pourrais m'expliquer comment faire stp? Je ne comprends pas bien la

ok,

je regarde demain (mon soucis est que je ne peux pas tester)

J'ai juste ajouté ces quelques lignes, à tester (je n'ai plus outlook)

        Dim qui As Range
        Set qui = sh.Columns("L").Find(sh.Range("G" & Lig))
        Set participant = .Recipients.Add(qui.Offset(0, 1).Value)
        participant.Type = 1
184test.xlsm (26.92 Ko)

Salut !

J'ai ajouté le code mais aucune invitation n'est envoyé :/

Je crois qu'il n'arrive pas à récupérer l'adresse mail

Désolé de répondre aussi tardivement !

Ajoute cette ligne (MsgBox) et regarde ce qui se passe, si tu as bien une personne identifiée :

        Dim qui As Range
        Set qui = sh.Columns("L").Find(sh.Range("G" & Lig))
        Set participant = .Recipients.Add(qui.Offset(0, 1).Value)
MsgBox "Participant ajouté : " & qui.Offset(0, 1).Value
        participant.Type = 1
Rechercher des sujets similaires à "rdv outlook invitation via vba"