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 :
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 SubIci, 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 SubSalut 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 StringSub 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 SubSub 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 SubJ'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 !