Envoi_invit_couleur_et_image

Hello le forum,

Vous m'avez déjà bien rendu service avec l'envoi d'invitations automatiques via outlook et je vous en remercie

Est-il possible de faire la même chose mais avec une présentation + soignée dans le corps du mail ? Avec couleur, centrage et une petite image sur le dessus.

Je vous joint un exemple en PJ avec la trame exact du corps.

En vous remerciant

Salut Rag, Salut le Forum !

Est-il possible de faire la même chose mais avec une présentation + soignée dans le corps du mail ? Avec couleur, centrage et une petite image sur le dessus.

Yep ! Yep ! C'est possible mais tu dois convertir tes codes en HTMLBody pour pouvoir utiliser des balises HTML et ainsi mettre de la couleur.

Prenons par exemple cette phrase :

capture

Elle contient du noir, du bleu, du gras, et une partie du texte est centré. Alors on va utiliser les balises ci-dessous :

  • Les balises <b> et </b> mettent en gras
  • Les balises <FONT COLOR=BLUE> et </FONT> mettent en bleu
  • La balise <p> renvoie à la ligne + saute une ligne
  • Les balises <center> et </center> centre le texte
  • La balise <br> renvoie à la ligne (sans le saut de ligne)

Donc le code de ton mail va devoir être changé en :

.BodyFormat = olFormatHTML 'Pour que mon mail soit au format HTML
.HTMLBody = "<HTML><body>" & _ 'Commence à écrire ton mail comme sa
"Dès le début de votre disponibilité, vous êtes attendu(e) <b> <FONT COLOR=BLUE> ce Lundi à 09H - RDC Hall 2 au LAB </FONT> </b> sur notre site du <p>" & _
"<center> <b> <FONT COLOR=BLUE> MORAZ</FONT> </b> <br> </center>" & _
"<center> <b> <FONT COLOR=BLUE> 2 rue TOTO Avenue </FONT> </b> <br> </center>" & _
"<center> <b> <FONT COLOR=BLUE> 7500 PARIS </FONT> </b> <br> </center>"

Voilà !

Si tu a des questions reviens vers nous, ou renseigne toi sur les Mail en HTML ^^

Hello,

Merci pour ta réponse et ton aide

J'ai une autre demande concernant ce fichier... Quand j'ajoute une adresse mail avec une autre date ça ne fonctionne pas ...

La première adresse mail fonctionne très bien mais pas la seconde ...

Exemple :

J'ai fait l'exemple avec ma propre adresse mail :

xxx.xxx@xxx.fr 01/12

xxx.xxx@xxx.fr 02/12

Je n'ai que l'invitation du 01/12

Est ce que vous pouvez m'aider sur ce sujet ?

Je voudrai que dans mon fichier je renseigne l'adresse et la date sur plusieurs lignes.

Merci à vous.

Hello,

Personne ne peut m'aider sur le sujet ?

Merci à vous.

Re- Rag,

Salut le Forum,

C'est une adresse mail est égal à un mail ou tu veux regrouper toutes les adresses mails en un seul et même mail ?

Et à quoi servent les dates :0 ?

Dans tout les cas sa va certainement être solutionnée par une Boucle :p

Hello juice ,

Une adresse = une invitation

Les dates servent a pluguer l'invitation dans l'agenda du destinataire.

Exemple :

Toto@gmail.com 25/12/2018

Tutu@gmail.com 15/12/2018

Signification :

Envoyer une invitation (réunion) à Toto pour le 25

Envoyer une invitation à tutu pour le 15.

Voili voilou.

Merci pour ton aide

Re Rag,

D'accord, donc tu a pas mal de méthode pour procéder.

Perso j'utiliserais une boucle pour tester chacune de tes cellules où sont stockées tes dates :

Sub Mail()
Dim x As Long, y As Long
Dim a As MailItem
'[Ici ta procédure actuelle]
'[Et à ton .To tu change par Cells(y,2)]
x = Range("C" & Rows.Count).End(xlUp).Row
For y = 3 To x
    If Cells(y, 3) <= Date Then
        Set a = Outlook.CreateItem(olMailItem)
        With a
            .To = Cells(y, 2)
        End With
    End If
'[La suite de ta procédure]
Next
End Sub

Ici, toute les cellules de la colonne C sont testées, et si l'une de ces cellules fais références à une date inférieur ou égal à la date du jour, alors on créé le mail avec le destinataire correspondant.

A adapter à ta propre macro.

Restant à disposition

Hello,

J'avoue ne pas arriver à adapter ...

Peux-tu me donner un coup de main stp ?

Merci à toi.

Ma procédure :

Private Sub InvitationOutlook()
  ' Déclarer les objets pour le late binding (compatible avec toutes versions)
  Dim OutObj As Object, OutAppt As Object
  ' Déclarer les autres variables nécessaires
  Dim DLig As Long, Lig As Long
  Dim Sujet As String, Détail As String, vDate As Date, Heure As String
  Dim Délai As Integer, Rappel As Integer
  Dim sDestinataires As String
  Dim sChemin As String, sNomFic As String
  ' Définir le chemin et le nom de la pièce jointe
  sChemin = "R:\10 - Assistante Opérationnelle TEM\Divers\2018\"
  sNomFic = "Resume.ppt"
  ' Créer l'instance OUTLOOK
  Set OutObj = CreateObject("outlook.application")
  ' Créer l'instance pour le RDV
  Set OutAppt = OutObj.CreateItem(1)  ' olAppointmentItem
  ' Avec Feuil1 de ce classeur
  With ThisWorkbook.Sheets("Feuil1")
    ' Trouver la dernière ligne du tableau en B
    DLig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Pour chque ligne inscrire la date si dépassée
    For Lig = 3 To DLig
      If .Range("C" & Lig).Value < Date Then
        .Range("C" & Lig).Value = .Range("C" & Lig).Value + 7
      End If
      ' Récupérer la date du RDV
      If vDate = "00:00:00" Then vDate = .Range("C" & Lig).Value
      ' Définir les participants
      sDestinataires = sDestinataires & .Range("B" & Lig).Value & ";"
    Next Lig
  End With
  ' Sujet
  Sujet = "Présentation de vos compétences"
  Détail = "Bonjour à vous," & vbCr _
           & "Vous êtes conviés à une réunion de présentation de vos compétences devant les managers TEM. " & vbCr _
           & "Lors de cette réunion qui a lieu de 12h00 à 13h30, nous allons vous demander de vous présenter, entre 5 et 10 minutes, à l'aide de la synthèse de votre parcours sous format PPT." & vbCr _
           & "Merci de vous y préparer." & vbCr _
           & "Pour ceux ne l'ayant pas encore remis (mis à jour), merci de nous les transmettre au plus tôt." & vbCr _
           & "Vous trouverez un exemple de trame ci-dessous que vous devez reprendre." & vbCr _
           & "Bien cordialement." & vbCr _

  ' Définir l'heure de début, le délai du RDV et le rappel
  Heure = "12:00": Délai = 90: Rappel = 30
  ' Avec l'objet Outlook, créer le RDV et l'envoyer
  With OutAppt
    .Start = vDate & " " & Heure
    .Duration = Délai
    .Location = "Bâtiment BELLINI - Salle baobab"
    .ReminderMinutesBeforeStart = Rappel
    .ReminderSet = True
    .Subject = Sujet
    .Body = Détail
    .MeetingStatus = 1
    ' Participant(s) obligatoire(s)
    .RequiredAttendees = sDestinataires
    ' Participants optionnel à la réunion
    '.OptionalAttendees = "titi@adm.co.ma"
    ' Ajouter une pièce jointe
    .Attachments.Add sChemin & sNomFic
    ' Créer et envoyer le RDV
    .send
  End With
  ' Libérez la variable objet Outlook.
  Set OutObj = Nothing
  Set OutAppt = Nothing
  ' Petit message
  MsgBox "Rendez-vous ajouté et envoyé ! "
End Sub

Pas de réponse

Salut Rag,

Désolé pour l'attente :p Bon alors voilà une manière de procéder qui envoie une invitation par ligne :

Option Explicit
Public x As Long
Public y As Long
Public w As Long
Public vDate As Date
Public sDestinataires As String
Sub Boucle()
x = Range("C" & Rows.Count).End(xlUp).Row
For y = 3 To x
    If Cells(y, 4) <> "x" Then
        'Récupère la date du rendez-vous :
        vDate = Cells(y, 3)
        'Défini LE participant :
        sDestinataires = Cells(y, 3)
        'On met une croix sur la ligne traité
        Cells(y, 4) = "x"
        'On appel la procédure d'invitation avec les paramètres ci-dessus :
        Call InvitationOutlook
        Exit Sub
    End If
Next
Columns(4).ClearContents
MsgBox "Rendez-vous ajouté et envoyé ! "
End Sub
Sub InvitationOutlook()
  ' Déclarer les objets pour le late binding (compatible avec toutes versions)
  Dim OutObj As Object, OutAppt As Object
  ' Déclarer les autres variables nécessaires
  Dim DLig As Long, Lig As Long
  Dim Sujet As String, Détail As String, Heure As String
  Dim Délai As Integer, Rappel As Integer
  Dim sChemin As String, sNomFic As String
  ' Définir le chemin et le nom de la pièce jointe
  'sChemin = "R:\10 - Assistante Opérationnelle TEM\Divers\2018\"
  'sNomFic = "Resume.ppt"
  ' Créer l'instance OUTLOOK
  Set OutObj = CreateObject("outlook.application")
  ' Créer l'instance pour le RDV
  Set OutAppt = OutObj.CreateItem(1)  ' olAppointmentItem
  ' Avec Feuil1 de ce classeur
  With ThisWorkbook.Sheets("Feuil1")
    ' Trouver la dernière ligne du tableau en B
    DLig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Pour chque ligne inscrire la date si dépassée
    For Lig = 3 To DLig
      If .Range("C" & Lig).Value < Date Then
        .Range("C" & Lig).Value = .Range("C" & Lig).Value + 7
      End If
    Next Lig
  End With
  ' Sujet
  Sujet = "Présentation de vos compétences"
  Détail = "Bonjour à vous," & vbCr _
           & "Vous êtes conviés à une réunion de présentation de vos compétences devant les managers TEM. " & vbCr _
           & "Lors de cette réunion qui a lieu de 12h00 à 13h30, nous allons vous demander de vous présenter, entre 5 et 10 minutes, à l'aide de la synthèse de votre parcours sous format PPT." & vbCr _
           & "Merci de vous y préparer." & vbCr _
           & "Pour ceux ne l'ayant pas encore remis (mis à jour), merci de nous les transmettre au plus tôt." & vbCr _
           & "Vous trouverez un exemple de trame ci-dessous que vous devez reprendre." & vbCr _
           & "Bien cordialement." & vbCr _
  ' Définir l'heure de début, le délai du RDV et le rappel
  Heure = "12:00": Délai = 90: Rappel = 30
  ' Avec l'objet Outlook, créer le RDV et l'envoyer
  With OutAppt
    .Start = vDate & " " & Heure
    .Duration = Délai
    .Location = "Bâtiment BELLINI - Salle baobab"
    .ReminderMinutesBeforeStart = Rappel
    .ReminderSet = True
    .Subject = Sujet
    .Body = Détail
    .MeetingStatus = 1
    ' Participant(s) obligatoire(s)
    .RequiredAttendees = sDestinataires
    ' Participants optionnel à la réunion
    '.OptionalAttendees = "titi@adm.co.ma"
    ' Ajouter une pièce jointe
    '.Attachments.Add sChemin & sNomFic
    ' Créer et envoyer le RDV
    '.send
  End With
  ' Libérez la variable objet Outlook.
  Set OutObj = Nothing
  Set OutAppt = Nothing
  ' Petit message
  ' TANT QUE X est différent de Y on boucle
  Call Boucle
End Sub

J'ai pas tester le code car j'ai pas envie de spammer ma boîte de fausse invitation :p

Je te laisse revenir vers moi en cas de problème !

Rechercher des sujets similaires à "envoi invit couleur image"