J'ai un script VBA qui génère et envoie un e-mail lorsqu'un bouton VBA est inséré dans une feuille de calcul donnée.
Le script génère actuellement le courrier électronique dans une police relativement petite. Je me demandais s’il existait un moyen de définir la police sur Calibri et le texte sur 11.
Voici le script VBA actuel:
Private Sub CommandButton1_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim strUser As String
Dim signature As String
Dim sTo As String
Dim sCC As String
'For To field
Set emailRng = Worksheets("Send Email").Range("D3:I6")
For Each cl In emailRng
sTo = sTo & ";" & cl.Value
Next
sTo = Mid(sTo, 2)
'For CC field
Set emailRngCC = Worksheets("Send Email").Range("D8:I11")
For Each cl In emailRngCC
sCC = sCC & ";" & cl.Value
Next
sCC = Mid(sCC, 2)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.Display
End With
signature = OutMail.HTMLBody
strbody = "<FONT SIZE = 3>Good Morning;<p>We have completed our main aliasing process for today. All assigned firms are complete. Please feel free to respond with any questions.<p>Thank you."
With OutMail
.SentOnBehalfOfName = ""
.To = sTo
.CC = sCC
.BCC = ""
.Subject = "Data Morning Alias Process - COMPLETE"
.HTMLBody = strbody & signature
.Display
End With
End Sub
Je sais que cette partie du code:
strbody = "<FONT SIZE = 3.5>Good Morning;<p>We have completed our main aliasing
est la partie qui concerne la taille du texte du corps de l'e-mail. Mais un réglage de 3 est trop petit et un réglage de 4 est trop grand. Je me demandais donc si je pouvais définir la police de manière à avoir exactement la taille 11 et le texte à formater comme Calibri?
Je vous remercie!
J'ai fait une petite recherche et j'ai pu écrire ce code:
strbody = "<BODY style=font-size:11pt;font-family:Calibri>Good Morning;<p>We have completed our main aliasing process for today. All assigned firms are complete. Please feel free to respond with any questions.<p>Thank you.</BODY>"
apparemment en définissant le "font-size=11pt"
au lieu de définir la taille de la police <font size=5>
, Il vous permet de sélectionner une taille de police spécifique, comme vous le feriez normalement dans un éditeur de texte, par opposition à une valeur de 1 à 7 telle que mon code était à l'origine.
Ce link de simPLE MAn m'a donné de bonnes informations.
Pour info, j’ai aussi fait une petite recherche et si le nom de la famille de fontes que vous souhaitez appliquer contient des espaces (à titre d’exemple, je prend Gill Alt One MT Light), vous devriez écris-le de cette façon:
strbody= "<BODY style=" & Chr(34) & "font-family:Gill Alt One MT Light" & Chr(34) & ">" & YOUR_TEXT & "</BODY>"
Définissez des textes avec différentes tailles et styles, ainsi que des tailles et styles pour les textes de cellules (avec Range)
Sub EmailManuellAbsenden()
Dim ghApp As Object
Dim ghOldBody As String
Dim ghNewBody As String
Set ghApp = CreateObject("Outlook.Application")
With ghApp.CreateItem(0)
.To = Range("B2")
.CC = Range("B3")
.Subject = Range("B4")
.GetInspector.Display
ghOldBody = .htmlBody
ghNewBody = "<font style=""font-family: Calibri; font-size: 11pt;""/font>" & _
"<font style=""font-family: Arial; font-size: 14pt;"">Arial Text 14</font>" & _
Range("B5") & "<br>" & _
Range("B6") & "<br>" & _
"<font style=""font-family: Chiller; font-size: 21pt;"">Ciller 21</font>" &
Range("B5")
.htmlBody = ghNewBody & ghOldBody
End With
End Sub
'Fill B2 to B6 with some letters for testing
'"<font style=""font-family: Calibri; font-size: 15pt;""/font>" = works for all Range Objekts