Création rdv outlook à partir d'Excel

Bonjour,

ayant déjà exploré différents forums je n'arrive pas à trouver ce que je souhaite.

Voici ma requête:

Je souhaite créer un fichier Excel avec tout les noms des clients (ça je sais le faire). Une fois cela fait ce que je veux c'est que les destinataires du mail que j'envoie avec le fichier excel puisse recevoir automatiquement une réunion outllook dans leurs agendas.

Par exemple: j'envoie le mail avec le fichier à tartenpion et dès qu'il ouvre le fichier Excel cela va lui créer une réunion dans son agenda (un déjeuner par exemple...)

Merci d'avance

Bonjour, et bienvenue

Si je peux me permettre une question ... et une suggestion : pourquoi envoyer un fichier excel ? juste pour lui créer une entrée dans son agenda ?

Ce que je suggère plutôt est de faire un mail via excel avec en fichier attaché un fichier .ics (c'est un fichier texte structuré) créé aussi par la macro excel.

Bonjour, merci de votre aide.

Si j'ai bien compris votre idée. Cela consisterait a faire un mail via excel est d'attache un fichier ics? A quoi cela sert il?

C'est justement le but du fichier .ics : quelle que soit la plateforme utilisée par l'invité (outlook, thunderbird, etc...), en ouvrant le fichier .ics qui va s'ouvrir dans son agenda il pourra l'enregistrer.

Comme le fichier .ics est un fichier texte, il est possible de le créer via une macro excel.

https://fr.wikipedia.org/wiki/ICalendar

iCalendar permet aux utilisateurs d'envoyer des demandes de rendez-vous, et de les transmettre à d'autres utilisateurs via e-mail. Les destinataires de l'e-mail qui possèdent un logiciel supportant le format iCalendar peuvent facilement répondre à l'expéditeur ou proposer une autre date/heure de rendez-vous.

exemple de fichier .ics (« Fête à la Bastille » qui se déroule du 14 juillet 1997 à 17 h 00 UTC au 15 juillet 1997 à 03 h 59 UTC)

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Fête à la Bastille
END:VEVENT
END:VCALENDAR

J'ai retrouvé un de mes posts complet sur le sujet

https://forum.excel-pratique.com/viewtopic.php?p=518270#p518270

Super merci les gars . Dernière question : comment faites vous pour créer un fichier ics dans Excel?

heu, "les gars", je dois avoir un doublement de personnalité ! lol

un exemple

Option Explicit

Sub Convoquer_par_ICS()

' ===========
' paramétrage
Const col_date = 2    ' numéro des colonnes où se trouvent les informations
Const col_debut = 3
Const col_fin = 4
Const col_action = 5  ' servira de test (envoi fichier .ics si vide), sinon mémorise l'action

Const titre = "le titre ici"
Const texte = "le texte ici"

Const destinataire = "truc.machin@clown.fr" ' le(s) destinataire(s) de ces invitations
' fin paramétrage
' ===============

Dim messagerie As Object
Dim email As Object
Dim cel As Object
Dim chemin As String
chemin = Environ("temp")

Set messagerie = CreateObject("Outlook.Application")

With ActiveSheet
    For Each cel In .Range("A2:" & "A" & .Range("A" & Application.Rows.Count).End(xlUp).Row)
        If cel.Value <> "" And cel.Offset(0, -1 + col_action).Value = "" Then
            If cel.Offset(0, -1 + col_date) < Now() Then
                cel.Offset(0, -1 + col_action) = "date échue"
            ElseIf cel.Offset(0, -1 + col_debut) = "" Or cel.Offset(0, -1 + col_fin) = "" Then
                cel.Offset(0, -1 + col_action) = ""
            Else

                Close #1
                Open chemin & "\invitation.ics" For Output As #1

                Print #1, "BEGIN:VCALENDAR"
                Print #1, "BEGIN:VEVENT"
                Print #1, "DTSTART:" & Application.Text(cel.Offset(0, -1 + col_date), "YYYYMMDD") & "T" & Application.Text(cel.Offset(0, -1 + col_debut), "HHMMSS") ' & "Z"
                Print #1, "DTSTAMP:" & Application.Text(Now(), "YYYYMMDD") & "T" & Application.Text(Now(), "HHMMSS") ' & "Z"
                Print #1, "DTEND:" & Application.Text(cel.Offset(0, -1 + col_date), "YYYYMMDD") & "T" & Application.Text(cel.Offset(0, -1 + col_fin), "HHMMSS") ' & "Z"
                Print #1, "LOCATION;ENCODING=QUOTED-PRINTABLE:" & cel.Value
                Print #1, "UID:"
                Print #1, "SUMMARY;ENCODING=QUOTED-PRINTABLE:" & titre
                Print #1, "DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & texte
                Print #1, "PRIORITY:3"
                Print #1, "SEQUENCE:0"
                Print #1, "BEGIN:VALARM"
                Print #1, "TRIGGER:-PT30M"
                Print #1, "ACTION:DISPLAY"
                Print #1, "DESCRIPTION:Rappel " & titre
                Print #1, "END:VALARM"
                Print #1, "END:VEVENT"
                Print #1, "END:VCALENDAR"

                Close #1

                Set email = messagerie.CreateItem(0)
                With email
                    .To = destinataire
                    .Subject = titre
                    .body = texte
                    .Attachments.Add chemin & "\invitation.ics"
                    .display
                End With
                Set email = Nothing

                cel.Offset(0, -1 + col_action).Value = "Mail préparé par " & Environ("UserName") & " le " & Application.Text(Now(), "DD/MM/YYYY HH:MM")

            End If
        End If
        Cells(cel.Row + 1, 1).Select
    Next cel
End With

Set messagerie = Nothing

On Error Resume Next
Kill chemin & "\invitation.ics"

End Sub

Merci à vous. je vais tester ça et je vous redis ça demain;)

Il faudrait sortir de la macro les variables comme titre, texte et destinataires

Ces derniers peuvent être multiples, voici une solution pour les renseigner tous dans la même cellule et les exploiter

424destinataires.xlsm (12.95 Ko)

J'ai essayé le fichier excel(pas le dernier mais l'avant dernier celui qui s'appelle convoquer avec ics). Le problème que je rencontre c'est que la personne doit accepter l'invitation qu'elle reçoit par mail. Or ce que je veux c'est que quand la personne reçoit le mail et l'ouvre , cela lui impose directement le rendez-vous.

OK

Si tu souhaites le faire via l'envoi d'un fichier excel, il faudra qu'elle "accepte" en activant les macros. Il s'agit dans ce cas d'une macro qui ira mettre à jour son agenda outlook (pour les autres, risque de devoir personnaliser les macros si on connait le type d'agenda géré par le destinataire).

Regarde ce sujet https://forum.excel-pratique.com/viewtopic.php?f=2&t=52208

Super on touche au but. Tu entends quoi par : "si on connait le type d'agenda géré par le destinataire"

Cordialement

Tu entends quoi par : "si on connait le type d'agenda géré par le destinataire"

Si le destinataire est sous Thunderbird ou Lotus cela ne fonctionnera pas (c'est l'intérêt des .ics)

Bonjour, est-il possible de le faire sans que le destinataire active la macro?

Bonjour,

Le destinataire n'a pas à activer une macro

Il doit ouvrir le fichier .ics attaché au mail que tu lui as envoyé et accepter l'entrée d'agenda

Re,

j’ai pu testé mais l'heure proposé est celle de l'envoie du mail. C'est-à-dire que si j'envoie à 14H45 le rendez vous se mettra à 15H. De plus le destinataire doit accepter alors que je veux lui imposer une fois qu'il a cliquer.

Le but étant de faire une blague à mes collègues

Re

en faite l'heure et la date marche je m'étais trompé de date. Néanmoins, il reste toujours la problématique d'imposer le rdv et d'ajouter d'autres destinataires au rendez vous.

:up:

en faite l'heure et la date marche je m'étais trompé de date.

regarde les spécifications des fichiers ics pour adapter

il reste toujours la problématique d'imposer le rdv et d'ajouter d'autres destinataires au rendez vous.

je ne pense pas que ce soit possible, c'est pour cela que je n'ai pas répondu davantage, y compris au premier problème

Rechercher des sujets similaires à "creation rdv outlook partir"