VBA: Comment définir une ligne unique dans la messagerie Outlook?
Je suis entrain de créer un e-mail à partir d'Excel. Une fois que le courrier électronique a été créé, j'ai besoin d'ajouter un commentaire ou deux au sommet. J'ai compris comment définir le style de police, mais les Perspectives sont l'ajout d'une double ligne de l'espace sur Retour Chariot qui je ne veux vraiment pas. Comment puis-je changer cela?
Code ci-dessous:
Sub CreateDailyEmail()
Dim oApp As Object
Dim oMail As Object
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)
With oMail
.To = Range("EMAIL_TO")
.Cc = Range("EMAIL_CC")
.Subject = Range("EMAIL_SUBJECT")
.Attachments.Add (Range("PATH"))
.HTMLBody = "<p style=""font-family: Calibri; font-size: 14px; color: #00f; line-height: 1;""><br /></p>" & RangetoHTML(ActiveWorkbook.Worksheets("Daily").Range("B6:H65"))
.Display
End With
Set oMail = Nothing
Set oApp = Nothing
End Sub
- Pouvez-vous partager quelques exemple de la sortie HTML (c'est à dire
HTMLBody
) pour la référence? - Vous avez
p
et aussibr
balise, elle produit donc 2 sauts de ligne - ou peut-être que je ne comprends pas la question, si +1, par exemple HTML ou une capture d'écran du problème.
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes à l'aide de l'excellent Ron De Bruin du code pour l'envoi et la e-mail à partir d'Excel (d'où le RangetoHTML() de la formule).
J'ai été en utilisant ce même morceau de code qui peut être trouvé à http://www.rondebruin.nl/win/s1/outlook/mail.htm
Au lieu d'utiliser le paragraphe balises HTML dans le .HTMLBody utiliser les balises de corps et de définir la ligne de hauteur à 1. Puis, quand le RangetoHTML renvoie la plage que vous voulez qu'il ne seront séparés à partir de n'importe quel texte que vous avez en un seul espace!
Cela rend le code....
Je ne suis pas entièrement sûr de comprendre ce que vous demandez, comme je ne suis pas certain si les retours chariot sont en cours dans les cellules de la feuille excel, ou seulement du html dans outlook, mais il y a deux approches dans mon esprit:
Vous pouvez remplacer les retours chariot et les sauts de ligne dans une cellule(http://stackoverflow.com/questions/2321078/how-can-i-remove-blank-line-breaks-from-an-excel-cell-with-vb-or-a-formula
) pour faire face à l'espacement des questions, par exemple
Si elle est présente dans la partie html de votre document, il est outlook un problème spécifique, comme un exemple de code html à l'aide de vos paramètres fonctionne très bien:
Pour outlook, vous devriez être en mesure de remplacer les retours chariot à l'aide de la fonction Remplacer:
Ou, éventuellement:
Ou bien:
La documentation MSDN traite directement de la fonction de remplacement de Microsoft tutoriel sur la façon de travailler avec l'élément de corps: http://msdn.microsoft.com/en-us/library/office/dd492012(v=office.12).aspx
Un tutoriel sur vbaexpress apparaît au moins à la périphérie de traiter de cette question, et peut fournir d'autres précisions: http://www.vbaexpress.com/forum/showthread.php?t=39348