XL 2010 Envoi mail depuis texte + recherche + mailto, subject, body

Orson83

XLDnaute Impliqué
Bonsoir le forum,
Avec votre aide, j'aimerai envoyer un mail au destinataire associé en cliquant sur le texte "Envoi mail". Le problème c'est que le mail se trouve dans une autre feuille.
Pour compliquer un peu, lors de l'envoi du mail, je souhaiterai qu'il contienne "le mail" + "l'objet du mail" + "le texte du mail".
Merci pour votre aide sans VBA si possible.
Je joins un exemple en PJ.
Orson83
 

Pièces jointes

  • Recherche mail V1.xlsm
    11.7 KB · Affichages: 12
Dernière édition:
Solution
Bonjour,

Ca ne marche pas chez moi (Excel 2016 32 bits), mais je ne suis pas sûr d'avoir compris tout ce qu'il faut remplir sur les trois feuilles.

Capture_2023-06-16_02-26-06.png


[edit] En fait avec les bonnes valeurs pour le smtp et le port, ça marche très bien ! [/edit]



Sans VBA, il y a le lien hypertext qui ouvre le gestionnaire de courrier par défaut (me semble-t-il) près rempli :
Code:
=LIEN_HYPERTEXTE("mailto:" & D3 & "?subject=" & C3 & "&body=" & F3;"Envoyer mail")


Ce qui, avec le fichier de #1 pourrait donner quelque chose comme ceci :
Code:
=LIEN_HYPERTEXTE("mailto:" & RECHERCHEV(B4;Feuil1!$B$2:$N$11;13;FAUX) & "?subject=" & $H$19 & "&body=" & $H$20;"Envoyer mail")

Pour envoyer le même mail simultanément...

Orson83

XLDnaute Impliqué
Bonjour @Orson83

Perso je comprends pas ceci

Regarde la pièce jointe 1172475

Tu veux un mail ou un lien hypertexte ?

Et il est ou le texte du sujet du mail ?

Et il est ou le texte du corps du mail ?

@Phil69970
Je souhaiterai qu'en cliquant sur "Envoi mail" ma messagerie s'ouvre avec le mail (mailto) du nom associé + le sujet (subject) du mail défini dans la formule + le corps (body) du mail défini aussi dans la formule.
Les textes que tu as entourés servent de modèles pour la formule.
En gros, quand je clique sur le lien, ma messagerie s'ouvre avec les 3 champs déjà renseignés.
 

Orson83

XLDnaute Impliqué
Quand je dis :


Tout c'est tout

Dans une cellule tu mets le nom de l'expéditeur ==> Feuil1 N2 et suivant
Dans une cellule tu mets le sujet
Dans une cellule tu mets le corps

Une macro vient prendre tous ces éléments et envoie le mail

@Phil69970
Bonjour @Phil69970,
Peux tu me proposer stp une version VBA comme tu l'as décrit ci-dessus ?
 
Dernière édition:

Orson83

XLDnaute Impliqué
Re

Je te propose ce fichier

Merci de ton retour

@Phil69970
Bonjour @Phil69970,
Quand je clique sur le bouton, seule une boite de dialogue s'ouvre (voir capture1).
La capture2 montre mon fichier final avec la fonction recherchée.
Peut-être que je me suis égaré dans ma demande initiale et qu'il faudrait imaginer une autre façon de faire ?
Pour une meilleure compréhension, voici la formule indiquée dans la colonne "Alerte paiement".
Code:
=SI([@[Statut paiement]]="Payé";1;
SI(AUJOURDHUI()>=[@[Date alerte]];0;1))
 

Pièces jointes

  • Capture1.jpg
    Capture1.jpg
    286.9 KB · Affichages: 17
  • Capture2.pdf
    423.5 KB · Affichages: 2
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Ca ne marche pas chez moi (Excel 2016 32 bits), mais je ne suis pas sûr d'avoir compris tout ce qu'il faut remplir sur les trois feuilles.

Capture_2023-06-16_02-26-06.png


[edit] En fait avec les bonnes valeurs pour le smtp et le port, ça marche très bien ! [/edit]



Sans VBA, il y a le lien hypertext qui ouvre le gestionnaire de courrier par défaut (me semble-t-il) près rempli :
Code:
=LIEN_HYPERTEXTE("mailto:" & D3 & "?subject=" & C3 & "&body=" & F3;"Envoyer mail")


Ce qui, avec le fichier de #1 pourrait donner quelque chose comme ceci :
Code:
=LIEN_HYPERTEXTE("mailto:" & RECHERCHEV(B4;Feuil1!$B$2:$N$11;13;FAUX) & "?subject=" & $H$19 & "&body=" & $H$20;"Envoyer mail")

Pour envoyer le même mail simultanément à plusieurs destinataires, adapter la formule en calculant la liste des destinataires.
 

Pièces jointes

  • Recherche-mail-V1_(TooFatBoy-v1).xlsm
    18.2 KB · Affichages: 3
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Avec VBA, une version épurée au maximum :
VB:
Sub EnvoieMail()
'
    Set LeMail = CreateObject("Outlook.Application")    ' Création d'un objet Outlook

    With LeMail.CreateItem(olMailItem)
        .To = "destinataire@fai.com"                    ' Adresse mail du destinataire
        .Subject = "Objet du mail"                      ' Objet du mail
        .Body = "Bonjour," & vbCrLf & vbCrLf _
                & "Veuillez recevoir ce mail."          ' Corps du mail
        .Display                                        ' Ouvre Outlook avec le mail rempli
'        .Send                                          ' Envoie le mail sans ouvrir Outlook
    End With

End Sub
 

Discussions similaires

Réponses
2
Affichages
236

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 158
dernier inscrit
laufin