Modification Macro envoi invitation

bonjour a tous

j'ai une macro qui envoi une demande de rendez vous via excel dans le calendrier.

Mais il semblerais que le fichier ICS joint soit bloquer dans le calendrier avec la syncronisation vers mon téléphone.

y aurais t'il un moyen denregistrer ce rendez vous sans le fichier ICS.

voici ma macro

Sub mail()

' ===========
' 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 = 6  ' servira de test (envoi fichier .ics si vide), sinon mémorise l'action

Const titre = "Réservation Formation Guide-File (GF)- Serre-file (SF) - Equipier de Première Intervention (EPI)"
Const texte = "Nouvelle Formation enregistree dans le fichier.  Ouvrir la piece jointe puis cliquer sur  enregistrer & fermer "

Const destinataire = "toto@gmail.com" ' 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("A3:" & "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"
                    .send
                End With
                Set email = Nothing

                cel.Offset(0, -1 + col_action).Value = "Demande Envoyer par " & Application.UserName & " le " & Application.Text(Now(), "DD/MM/YYYY")

            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 de votre aide

Bonjour reinruof77

Tout dépend si ton téléphone est synchronisé avec ton Outlook ou pas !?

A+

Bonjour BrunoM45.

Mon calendrier est bien synchroniser car tout mes autre Rdv je les retrouves bien.

Il n'y as que celui ci ou j'ai une erreur.

L'erreur exacte est "la synchronisation d'un fichier n'a pas pu être établie".

Et en complément j'ai ce rdv.

J'ai essayé avec plusieurs logiciels. Sur mon téléphone mais cela ne fonctionne pas.

Ce Rdv reste bloquer à la synchronisation.

Merci de ton aide.

Cordialement

Re,

Alors pour moi, ta façon de faire est une très vieille méthode il y a bien plus simple

Sub RappelOutlook()
' Ajouter un nouveau rendez-vous.
  Dim OutObj As Object, OutAppt As Object
  Dim Lig As Long, Sujet As String, Détail As String
  Dim Vdate As String, Heure As String, HTemp As String
  Dim Delai As Integer, Rappel As Single
  ' Récupérer les paramètres pour OUTLOOK
  Delai = 15 :  Rappel = 0,5
  ' Ligne sur la feuille
  Lig = Selection.Row
  Sujet = "Rappel pour le client : " & Range("D" & Lig).Value & "-" & Range("C" & Lig).Value
  ' Récupérer la date de rappel sur la feuille
  Vdate = Range("O" & Lig).Value
On Error Resume Next
  ' Heure de rappel
  Heure = "09:30:00")
  ' Demander l'heure
  HTemp = InputBox("A qu'elle heure voulez-vous faire le rappel (HH:MM) ?", "HEURE de RAPPEL ...", Heure)
  If HTemp <> "" And HTemp <> Heure Then
    If InStr(1, HTemp, ":") > 0 Then Heure = HTemp
  End If
  ' Délai de la période 1 heure avant
  Heure = Format(Heure, "hh:mm:ss")
  On Error GoTo 0
  ' Créer l'instance OUTLOOK
  Set OutObj = CreateObject("outlook.application")
  ' Créer l'instance pour le RDV
  Set OutAppt = OutObj.CreateItem(1)  ' olAppointmentItem
  ' Si tout est OK, on créé un RDV
  With OutAppt
    .Start = Vdate & " " & Heure
    .Duration = Delai
    .Location = "Montargis"
    .ReminderMinutesBeforeStart = Rappel * 60    ' rappeler 8 heure avant
    .ReminderSet = True
    .Subject = Sujet
    .Body = Détail
    '.MeetingStatus = olMeeting
    '.OptionalAttendees = "titi@adm.co.ma" 'participants optionnel à la réunion
    ' Participant(s) obligatoire(s)
    '.RequiredAttendees = "DestOutlook"
    '.Send
    .Save
  End With
  ' Libérez la variable objet Outlook.
  Set OutObj = Nothing
  Set OutAppt = Nothing
  ' Petit message
  MsgBox "Le Rendez-vous à bien été ajouté ! ", vbInformation, "OK ..."
End Sub

A modifier et améliorer selon tes besoins

A+

Bonjour BrunoM45

Deja désoler de ne repondre que maintenant .

j'ai essayer d'adapter votre code a mon fichier mais je rencontre plusieurs probléme.(il faut dire que j'apprend encore)

PM: ce fichier est en reseau et est rempli par des personne exterieur donc pour savoir si il font une reservation j'ai besion de recevoir un RDV a la date de leur choix.

or je n'arrive pas a recevoir ce mail ou ce RDV.

de plus il ne prend pas la date choisi par la personne mais la date sur la premiere ligne

au lieu de la date choisi dans l'userform.

je joint mon fichier test pour que cela soit plus clair.

la macro ce trouve dans convoquer_ics

merci de votre aide.

Salut

Question, pourquoi fais-tu un onglet par jour !?

Il faut toujours penser base de données, dans une ligne il peut tout y avoir

A+

Bonsoir.

En effet une base de données serait plus simple.

Toutefois c'est la demande que j'ai eu de mes supérieurs.

Maintenant si tu as autre chose à me proposer je suis preneur.

😇

Bien cordialement.

Re,

Quelle est la demande exacte de tes supérieurs ?

En fonctionnant comme une base de données (une feuille unique pour toutes les infos)

Tu peux par la suite établir des rapport, des statistiques, etc...

Voici ton fichier de suivi formation en v2.0 oui rien que ça

Tu testes et tu nous dis ce que tu en penses et tes besoins

A+

Re.bonjour

Heu je vois pas le fichier.

Re,

Je n'ai pas compris

Il est maintenant joint à mon message précédent

Bonjour

deja bravo c'est super .

le seul probleme est que nous ne devons pas laisser le choix de la date.

Nous avons des date prédéfini qui corresponde au disponibilité du formateur.

j'ai ajouter la liste des dates dans ton fichier dans la feuille parametre mais je n'arive pas a l'adapter a ton code.

Merci beaucoup de ton aide.

Bonjour

deja bravo c'est super .

le seul probleme est que nous ne devons pas laisser le choix de la date.

Nous avons des date prédéfini qui corresponde au disponibilité du formateur.

j'ai ajouter la liste des dates dans ton fichier dans la feuille parametre mais je n'arive pas a l'adapter a ton code.

Merci beaucoup de ton aide.

de plus lorsqu'une date a été prise il ne doit pas être posiible de la resélectionner

car le formateur ne peux pas être a deux endroit a la fois a moins de ce cloner.

Rechercher des sujets similaires à "modification macro envoi invitation"