Envois mail Outlook

Résolu
alexeth Messages postés 12 Statut Membre -  
 AlexEth -
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

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. alexeth Messages postés 12 Statut Membre
       
      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
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > alexeth Messages postés 12 Statut Membre
         
        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
  2. AlexEth
     
    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