XL 2013 Envoi Mail PDF avec Signature sur Outlook

michaelk

XLDnaute Nouveau
Bonjour à tous,

Je précise tout de suite que je suis ultra débutant.
J'ai mis 3 heures à récupérer des informations sur des forums pour créer le code ci joint... Oui ! Je sais ! Je pars vraiment de Zéro !
J'arrive cependant dans une impasse, plusieurs même. et j'ai besoin de votre aide.

J'ai donc crée un bouton afin d'envoyer un mail en pdf d'un onglet excel "Ordo Audio"

Cependant, je souhaiterais:
- Utiliser mon compte outlook par défaut et surtout ma signature (avec logo et lien hypertexte)
- Tout le texte soit en police de caractère Century Gothic de taille 12
- Modifier "XXXXX" par l'information en cellule C4, et qu'elle y soit donc reliée.

Je vous remercie par avance pour votre aide et vos conseils si besoin de modifier / Alléger mon code actuel.

Michael
 

Pièces jointes

  • Macro Bouton envoyer mail.xlsm
    50.4 KB · Affichages: 55

michaelk

XLDnaute Nouveau
Merci kiki.

Mais jai deja consulter ses tutos et tentés de les copier en long en lzrge et en trzvers mais rien n'y fait.
Je me suis peut etre gourré qq part, mais la signature ne saffiche pas.
Et pour mes autres problemez, je ne vois meme pas le sujet chez Ron de Bruin.

Une idee?
 

michaelk

XLDnaute Nouveau
Oui, merci Staple1600.

Mais lorsque je recopie son code, outlook m'ouvre une boite mail qui n'as pas de signature.
Donc j'ai rajouter la ligne
OutMail.SentOnBehalfOfName = "contact@monadresse.fr"
pour utiliser ma BAL qui contient une signature. Mais cela ne s'affiche pas non plus.

Par ailleurs, pour les 2 autres points ? je ne trouve rien chez De Bruin
 

Staple1600

XLDnaute Barbatruc
Re

Après quelques tatonnements, il ya du mieux ;)

EDITION: Bonjour grisan29
Pour rebondir sur grisan, la coutume (ou la courtoisie) jadis voulait qu'on signale le cross-posting (en mettant une URL)
Mais cela c'était ou vingtième siècle, du temps où l'on connaissait la netiquette ;)
VB:
Sub TestSignature()
Dim OApp As Object, OMail As Object, Signature As String
Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)
Signature = Environ("appdata") & "\Microsoft\Signatures\"
If Dir(Signature, 16) <> vbNullString Then
  Signature = Signature & Dir$(Signature & "*.htm")
  Else:
  Signature = ""
End If
Signature = _
CreateObject("Scripting.FileSystemObject").GetFile(Signature).OpenAsTextStream(1, -2).readall
With OMail
  .Display
End With
'avec cette ligne j'ai le corps du message, la signature mais pas le format
'Signature = OMail.body
'avec cette ligne la signature et le format mais le corps à disparu ???
Signature = OMail.HTMLbody
With OMail
.To = ""
.Subject = "Ici mettre objet du courriel"
.HTMLbody = "Corps du message Ligne 1" & vbNewLine & _
  "Corps du message Ligne 2" & vbNewLine & _
  Signature
'.Display
End With
Set OMail = Nothing
Set OApp = Nothing
End Sub
 

michaelk

XLDnaute Nouveau
Merci Staple,

Pour info, j'ai compris d'où venait le probleme de signature !!
C'est tout bête, la boite mail qu'utilise le code par defaut est une boite sans signature.
Je lui en ai donc attribué une et il le prend bien en compte Merci beaucoup !!

Cependant... Je ne veux pas de cette boite là par défaut.
J'ai 12 boites mails sur outlook, je ne sais pourquoi il ne me prends meme pas celle par defaut, mais la 4eme..

Comment puis-je attribuer telle ou telle boite ?
J'adapterai donc le code signature en consequence après cela...
 

michaelk

XLDnaute Nouveau
STOP !!

Je suis juste débile...

je ne comprenais pas pourquoi mon compte par défaut n'etait pas celui que je souhaitais.
Pour info la réponse était :
Mon compte de messagerie était bien paramétré par defaut dans les options du comptes de messagerie d'outlook, cependant...
C'est mon fichier de données qui avait un autre compte par défaut !!!

Donc, j'ai bien le compte par défaut qui s'ouvre, et donc, j'ai bien la signature du compte par défaut qui s'affiche.

Merci pour votre aide sur ce coup les gars...

Pouvez -voux essayer de m'aider sur l'autre point maintenant ? please
- Modifier "XXXXX" par l'information en cellule C4, et qu'elle y soit donc reliée.
 

Staple1600

XLDnaute Barbatruc
Re

Tu as bien ton mail au format HTML (avec le corps du message et la signature) ??
Ce n'est pas le cas ici.
Tu utilises quelle version d'Outlook?

Pour ta cellule C4, c'était si compliqué à trouver, non ?
Code:
.HTMLbody = Sheets(1).Range("C4").Text & vbNewLine & Signature
 

michaelk

XLDnaute Nouveau
Merci Staple.

Voici mon code désormais et tout semble fonctionner (Signature, police).
Je te remercie pour ta ligne concernant XXXXX, mais je n'arrive pas à l'intégrer à mon strbody.

Sub Mail()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim sNomFic As String, sRep As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)

sNomFic = "Ordonnance Audio " & Worksheets("Info devis").Range("C4") & ".pdf"

strbody = "<font face=""century gothic""><font size=""3"">Madame,<br><br>" & _
"Pour vous informer du suivi, le devis pour l'appareil auditif de <B>Mme IDEC</B> a été validé.<br><br>"

With Worksheets("Ordo Audio")
fichier = "\" & "Ordonnance Audio " & Worksheets("Info Devis").Range("C4") & ".pdf"
Dossier = "C:\Users\micha\Google Drive"
Chemin = Dossier & fichier
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With

On Error Resume Next

With OutMail
.Display
.To = ""
.Cc = ""
.Attachments.Add "C:\Users\micha\Google Drive" & "\" & "Ordonnance Audio " & Worksheets("Info Devis").Range("C4") & ".pdf"
.Subject = "Ordonnance Audio " & Worksheets("Info Devis").Range("C4")
.htmlbody = strbody & "<br>" & .htmlbody
.Display
End With

On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

C'etait pas difficile à trouver en effet, c'est juste de le mettre en pratique qui me pose probleme... ;-)
 

Staple1600

XLDnaute Barbatruc
Re

Dans ton code, je ne vois nulle de code relatif à la signature (code qui était présent dans mon dernier code proposé)
(je parle de celle q'u'on créer par défaut dans Outlook : Outils/Options/Format du courrier/Signatures)

PSQ: Tu n'as pas répondu à ma question concernant ta version d'Outlook

Car j'ai testé ton code VBA et j'ai le même souci qu'avec mon code, seule la signature apparait, je n'ai pas le corps du message dans le mail.
 
Dernière édition:

michaelk

XLDnaute Nouveau
Re

Merci de tes échanges.
En effet, le fait d'avoir paramétré le bon compte par défaut dans Outlook dans le"fichier de données", la signature prise par défaut a été celle de mon compte outlook.
Donc je n’avais plus lieu de l'intégrer dans le code (pour alléger).

C'est pourquoi j'ai immédiatement indiqué dans un post précédent pour ne pas avoir à chercher un code inutilement pour moi.

Pour ce qui est de :
.HTMLbody = Sheets(1).Range("C4").Text & vbNewLine & Signature
Je n'arrive pas toujours pas à faire que Mme XXXXX corresponde à Range C4

strbody = "<font face=""century gothic""><font size=""3"">Madame,<br><br>" & _
"Pour vous informer du suivi, le devis pour l'appareil auditif de <B>Mme XXXXX</B> a été validé.<br><br>"

Désolé de mes questions peut etre naives, mais comme je disais, j'ai demarrer le VBA il y a 6 heures...
 

Discussions similaires

Réponses
15
Affichages
2 K

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83