Publipostage VBA vers outlook : édition de texte avec variable possible ?
Bonjour à toutes et tous,
Le titre n'est surement pas très clair. Je blâmerai pour cela le style télégraphique de rigueur !
En dépit d'une petite recherche dans l'historique du forum, je ne suis pas parvenu à trouver le rouage magique qui débloquera tout l'engrenage.
L'histoire en court est la suivante :
Je tente de faire fonctionner une petite macro dans un document excel qui viendra chercher des variables dans un tableau pour les afficher ensuite dans outlook (qu'il s'agisse du sujet, de PJ, de cc/cci, ou encore de chiffres/string dans le corps du mail).
Oui mais voila ! Autant tout fonctionne avec un texte que je prédéfini au format html intégrant des variables, autant j'aurais aimé rendre le texte complètement modulable (via un formulaire "inputbox" géant, un truc du genre par exemple).
Voici un exemple simple :
Set Mail = CreateObject("Outlook.Application")
With Mail.CreateItem(olMailItem)
.To = Desto
.Subject = Subject
.CC = DestiCC
.BCC = DestiCCi
.BodyFormat = olFormatHTML
If PJ1 <> "" Then .Attachments.Add PJ1
If PJ2 <> "" Then .Attachments.Add PJ2
If PJ3 <> "" Then .Attachments.Add PJ3
If compartment = "" Then
.HTMLBody = "<html><p>" & Inv & ",</ br></p>" _
& "</ br><p>Vous trouverez ci-joint un relevé de position au " & date_fs & " du fonds " & fund & " et son reporting au " & date_fs & ".</p>" _
& "</ br><p>Nous restons à votre disposition pour toute information.</p>" _
& "</ br><p>Bien cordialement,</p></html>"
Else
.HTMLBody = "<html><p>" & Inv & ",</ br></p>" _
& "</ br><p>Vous trouverez ci-joint un relevé de position au " & date_fs & " dans le compartiment " & compartment & " et le reporting du fonds " & fund & " au " & date_fs & ".</p>" _
& "</ br><p>Nous restons à votre disposition pour toute information.</p>" _
& "</ br><p>Bien cordialement,</p></html>"
End If
.Display
' .Save
' .Send
End WithDans cet exemple simple, on souhaite envoyer un relevé de position (supposons) à une liste de destinataires. Ce code est inclu dans une boucle et les variables changent évidemment de valeur à chaque fois (ie chaque "ligne" du tableau excel source ).
Bref ! Ce que je chercherais à faire, ce serait plutôt d'avoir en amont de cette boucle un moyen d'avoir tout ce "code html" dans une variable Body de sorte que je puisse écrire
.HTMLBody = BodyMon soucis pour ce faire est d'intégrer mes variables dans l'outil de saisie de l'utilisateur.
Est-ce qu'un utilisateur pourrait via une variable string saisir du code HTML ?
Pour moi, il considère mes balises comme du simple texte à afficher.
Je remercie évidemment toutes les personnes qui prendront la peine (ou le plaisir ?
Cordialement,
Dyno
Mon soucis pour ce faire est d'intégrer mes variables dans l'outil de saisie de l'utilisateur.
Est-ce qu'un utilisateur pourrait via une variable string saisir du code HTML ?
Pour moi, il considère mes balises comme du simple texte à afficher.
Un peu d'avancement de mon côté !
En lieu et place de :
.HTMLBody = BodyEn mettant ceci :
.HTMLBody = "<html>" & Body & "</html>"En changeant le premier p'tit bout par le second p'tit bout, je peux écrire en html dans une inputbox par exemple (certes, limite de caractères, mais c'est pour l'exemple) donc appliquer du gras de l'italique, sauter des lignes etc ...
En revanche, je ne sais toujours pas comment intégrer des variables dans ce "Body" car on m'affichera dans le texte-même mes variables en texte. Il me sort littéralement :
" & Inv & ",
Vous trouverez ci-joint un relevé de position au " & date_fs & " du fonds " & fund & " et son reporting au " & date_fs & ".
Nous restons à votre disposition pour toute information.
Une idée ? Je n'ai pas énormément d'idées ^^'
Merci encor,e
Hello tout le monde !
Je me permets de relancer le sujet des fois qu'une étincelle naisse enfin. ^_^
Ma question est :
Peut-on afficher des variables définies dans vba dans un texte saisi intégralement par un utilisateur ? ie l'utilisateur peut-il saisir un texte en appelant lui-même les variables dans sa saisie ?
Merci encore,