Envois mail Outlook

Résolu/Fermé
alexeth Messages postés 12 Date d'inscription lundi 25 mai 2020 Statut Membre Dernière intervention 4 juillet 2020 - Modifié le 12 juin 2020 à 13:12
 AlexEth - 4 juil. 2020 à 14:03
Bonjour à ceux qui me lirons !

Dans le document ci-joint il y a deux macro : PDF_Click et MAIL_Click

J'ai un souci avec la macro MAIL...
En soit elle fonctionne, elle réagit à mon automatisation des données (voir les consignes dans le document)

Quand j’appuie sur le bouton MAIL cela me prépare un mail avec le destinataire, l'objet et le corps du mail.

- Mais, je n'ai pas le choix pour l'expéditeur, je souhaiterai que selon le CGF choisit, le mail s'envois de la boîte mail associée. (pour que la signature soit affichée, et que cela mette le mail dans les éléments envoyés)
- C'est pourquoi il y aurait aussi besoin d'un mot de passe qui s'affiche quand je clique sur un nom de la liste (mot de passe correspondant)
- Et, je n'arrive pas à coder pour que la PJ soit ActiveSheet, comme pour l'enregistrement PDF de l'autre macro...
- Il y a aussi le message ci-dessous(capture écran) qui s'affiche quand j'appuie sur le bouton MAIL, je ne comprends pas... je préférerai que ce soit la demande de mot de passe qui s'affiche à la place.


Merci d'avance pour un coup de main !

DOCUMENT :
https://www.cjoint.com/c/JFmk1Dw6ao3
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 juin 2020 à 14:05
Bonjour,

Pour ta première question, voici un extrait du code que j'utilises :

Dim OutApp As Object, OutMail As Object
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
            .From = "jules.guesde@point.fr"
            .To = "alice.çaglisse@pointue.fr"
            .cc = "qui.tu@veux.fr"
            .Subject = "attention fragile"
            .Body = "blabla"
            'ou .HTMLBody = "<font style='font-family: Calibri;font-size: 11pt ;'> bla bla bla" & "<br><br></font>"
            .Display
        End With


Pour la signature, voir ici : https://www.rondebruin.nl/win/s1/outlook/signature.htm
0
alexeth Messages postés 12 Date d'inscription lundi 25 mai 2020 Statut Membre Dernière intervention 4 juillet 2020
Modifié le 17 juin 2020 à 10:36
Merci pour ta réponse ! La mienne est tardive...

J'utilise maintenant ton code :

Private Sub MAIL_Click()
 
Dim OutApp As Object, OutMail As Object
 
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        On Error Resume Next
        With OutMail
          .From = Sheets("Réglages").Range("P2")
            .To = Sheets("Réglages").Range("U2")
            '.CC = "qui.tu@veux.fr"
            .Subject = Sheets("Réglages").Range("X2")
            '.Body = Sheets("Réglages").Range("AA2")
            'ou .HTMLBody = "<font style='font-family: Calibri;font-size: 11pt ;'> bla bla bla" & "<br><br></font>"
            'Je l'affiche
            .Display
         End With
 
End Sub


Finalement je n'ai plus besoin du .From car je suis connecté avec Exchange à ma session, donc l'expéditeur est forcément l'utilisateur de la session utilisée. Et ton code évite la demande d'autorisation donc ça aussi c'est bon ainsi que pour le mot de passe.

Si j'ai bien compris le lien que tu m'as envoyé, cela permet de créer une signature dans le mail, pas d'utiliser celle déjà en place dans ma boîte mail. Si je ne met pas de .Body (texte ou html) cela fonctionne, il y a bien ma signature, le problème est donc que je ne peux rien rajouter dans le corps du mail si je veux ma signature...

Il ne me reste plus qu'à régler ce problème de signature, et celui de la PJ(la feuille active).
J'ai regardé sur internet, il est souvent précisé qu'il faut passer par un pdf déjà enregistré pour pouvoir mettre la PJ dans le mail, dans ce cas il faudrait que ce fichier soit automatiquement supprimé après l'envoie du mail, mais je n'arrive pas à l'appliquer...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744 > alexeth Messages postés 12 Date d'inscription lundi 25 mai 2020 Statut Membre Dernière intervention 4 juillet 2020
17 juin 2020 à 10:39
Bonjour,

Tu as, vraiment, toutes les solutions imaginables à tes 2 soucis ici :
https://www.rondebruin.nl/win/s1/outlook/mail.htm

Ça fait de la lecture, en Anglais, mais tout y est...
0
Bonjour,

C'est bon problème résolu, voici le code : (les informations entre * * sont à adapter)

Private Sub *MAIL*_Click()

Dim LafeuilleAenvoyer
Set LafeuilleAenvoyer = *Sheets("Modèle_Formulaire_Cotisations")*

Dim path_Fichier_PDF
path_Fichier_PDF = Environ("temp") & "\" & *Sheets("Réglages").Range("K2").Value* & ".pdf" 'nom du pdf
LafeuilleAenvoyer.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
path_Fichier_PDF, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Dim OutApp As Object, OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
' .From = *Sheets("Réglages").Range("P2")*
.To = *Sheets("Réglages").Range("U2")*
.Attachments.Add (path_Fichier_PDF)
'.CC = *"adresse mail"*
.Subject = *Sheets("Réglages").Range("X2")*

'METHODE 1 POUR LE CORPS DU MAIL
'.body = *Sheets("Réglages").Range("AA2")*
'.HTMLBody = "<font style='font-family: Calibri;font-size: 11pt ;'>" & *Sheets("Réglages").Range("AA2").Value*& "<br><br></font>"
'Je l'affiche
'.Display
'insertion signature par défaut
'Call InsertSignature(OutMail, "")


' 'METHODE 2 POUR LE CORPS DU MAIL
' 'on affiche pour que la signature automatique s'inscrive
.Display
' 'on change le body ou HTMLBODY
' '.body = *Sheets("Réglages").Range("AA2")* & Chr(13) & .body
' .htmlbody = "<font style='font-family: Calibri;font-size: 11pt ;'>" & *Sheets("Réglages").Range("AA2").Value* & "<br><br></font>" & .htmlbody


'##############################################################
' à décommenter pour l'envoi automatique
'.send
End With
End Sub
0