Résultats pour "vba envoi mail valeur corps"

14'389 résultats pour cette recherche

Bonjour à tous !

je viens vers vous pour une petite demande.

Pour faire court, j'ai une liste de personnes, avec la liste des formations qu'ils doivent passer.

Je présente la liste des personnes ligne par ligne, et la liste des formations colonne par colonne.

Ainsi, pour une personne, je vais venir ajouter des 1 ou des 0 (selon si il a besoin de passer telle ou telle formation).

(Je précise que sur mon fichier principal, les 1 et les 0 sont mis automatiquement selon des formules bien précises que je maîtrise déjà, ceci présente la seconde partie de mon fichier).

Ainsi, je souhaiterais, en cliquant sur le bouton de ma macro, qu'un mail s'envoi pour toutes les personnes ayant besoin d'une formation (présence d'au moins un 1 dans leur ligne). Je souhaiterais des mails séparés par personne (car le destinataire change selon chaque personne), mais que tous les besoins soient indiqués dans le corps de mail.

Ainsi dans mon fichier d'exemple ci-dessous, pour JEAN DUPONT je souhaiterais que le mail indique le besoin de passer la formation A et C, mais pas la B car il n'y a pas de "1" dans la colonne :

Bonjour PRENOM NOM,

La formation "FORMATION A" aura lieu le "DATE FORMATION A"

La formation "FORMATION C" aura lieu le "DATE FORMATION C"

Mais si je met un 1 dans la formation B, je voudrais que dans le corps du mail une ligne supplémentaire se rajoute pour dire qu'il a besoin de passer la formation B.

Je souhaiterais que le corps du mail se module selon la présence des 1 dans les différentes colonnes, et ça pour toutes les personnes (je voudrais un mail modulable par personne).

Je ne sais pas si j'ai été clair, si vous pouviez m'aider ce serait super !!

Merci beaucoup !

En PJ le fichier test et le début du code que j'ai fais.

Bonsoir tout le monde,

Je suis sur un projet dont le but est de construire un fichier permettant un mailing pour une grande base de données et je souhaiterais pouvoir insérer des images dans mes mails, jusque là tout va bien.

Je ne serais pas l'utilisatrice finale de ce fichier et je ne souhaite en aucun cas que les utilisateurs touchent au code, j'ai donc d'autres macros qui permettent rentrer la source des images dans des cellules du tableur.

Mon code fonctionne de manière super aléatoire et n'est pas utilisable en l'état, les photos ne s'affichent pas correctement, sur ordinateur certaines s'affichent bien mais ce n'est pas le cas de toutes les images et sur téléphone aucune image ne s'envoie correctement...

Par ailleurs je n'ai pas trouver non plus de solution pour que dans le corps du texte, les retours à la ligne soient gardés...

Si vous avez des idées et des solutions pour m'aider, ce serait parfait!

Merci d'avance

17mailing-test.xlsm (43.57 Ko)

Bonjour à tous!

Je reviens sur ce forum car j'ai repris un élément de macro sur lequel je bossais il y a quelques temps afin de l'appliquer à mon nouveau projet.

Le souci que je rencontre est dans la dernière partie de mon code :

L'envoi de mail automatique via Outlook.

Il s'agit de quelque chose que je sais faire et que j'ai déjà appliqué à différents sujets, mais là, le cumul de différents critères fait que je n'arrive pas à en voir le bout.

Je m'explique.

Je cherche à envoyer un mail automatiquement à un fournisseur (que j'irai chercher dans une cellule) qui contiendrait dans le corps du texte, deux plages de cellules variables en nombre de lignes ainsi que ma signature par défaut.

Thev m'avait aidé dans le précédent sujet en me donnant l'astuce du rng qui me permet de copier coller la plage dans le mail après ouverture de celui-ci.

Il restait cependant un problème. Avec cette astuce, je perds la possibilité de changer l'adresse mail émettrice.

Je crois avoir essayé tout ce que je pouvais pour la changer, mais impossible. J'ai dans mon entreprise une boîte personnelle et une boîte générique utilisé par mes collègues et moi-même. Le but étant ici d'envoyer le mail à partir de la boîte générique afin que les réponses des fournisseurs arrivent dessus et pas sur la boîte perso de la personne qui utilisera la macro.

Quelqu'un aurait-il une astuce? Le mail actuel est parfait, je n'ai plus qu'à ajouter quelques variables et de la mise en forme mais ce que j'ai actuellement me convient parfaitement. Le seul souci est cette adresse mail.

Voici mon code (censuré bien sûr) :

Sub SendMail()

    ' Déclarer des variables
    Dim PlageFeuilleComp As Range
    Dim PlageFeuillePart As Range
    Dim DerLigMailComp As Long
    Dim DerColMailComp As Long
    Dim DerLigMailPart As Long
    Dim DerColMailPart As Long
    Dim DerLigDest As Long

' Définition des variables
    Dim OL As Object, myItem As Object, wDoc As Object, rng As Object

    '// assignation application Outlook
    Set OL = CreateObject("Outlook.Application")

                DerLigMailComp = Workbooks("Transit.xlsx").Sheets("Complètes").Cells(Rows.Count, 1).End(xlUp).Row
                DerColMailComp = Workbooks("Transit.xlsx").Sheets("Complètes").Cells(1, Columns.Count).End(xlToLeft).Column
                DerLigMailPart = Workbooks("Transit.xlsx").Sheets("Partielles").Cells(Rows.Count, 1).End(xlUp).Row
                DerColMailPart = Workbooks("Transit.xlsx").Sheets("Partielles").Cells(1, Columns.Count).End(xlToLeft).Column

                ' plage feuille à envoyer
                Set PlageFeuilleComp = Workbooks("Transit.xlsx").Sheets("Complètes").Range(Cells(1, 1).Address, Cells(DerLigMailComp, 11).Address)
                Set PlageFeuillePart = Workbooks("Transit.xlsx").Sheets("Partielles").Range(Cells(1, 1).Address, Cells(DerLigMailPart, 11).Address)

                ' Assignation des objets
                Set myItem = OL.CreateItem(olMailItem): Set wDoc = myItem.GetInspector.WordEditor

                ' Création Email et envoi
                With myItem

                    ' Expéditeur, Destinataire, Sujet

                   .SentOnBehalfOfName = "monmailgénérique@entreprise.fr" 'Adresse qui doit remplacer mon adresse perso
                    .To = Workbooks("Transit.xlsx").Sheets("Complètes").Cells(2, 10).Value 'A adapter de façon à ce que ça fonctionne avec complète ou partielle
                    .Subject = "Relance AR du " & Date & " " & Workbooks("Transit.xlsx").Sheets("Complètes").Cells(2, 4).Value 'A adapter de façon à ce que ça fonctionne avec complète ou partielle
                    .Display

                    Set rng = wDoc.Content

                    ' Corps du mail
                    rng.InsertParagraphBefore
                    rng.Move 4, -1
                    rng.InsertAfter "Bonjour," & vbNewLine
                    rng.InsertAfter vbNewLine & "Nous vous invitons à trouver ci-dessous les commandes pour lesquelles nous attendons une confirmation d'un ou plusieurs postes." & vbNewLine
                    rng.InsertAfter vbNewLine & "Dans l'attente d'une réponse de votre part dans les meilleurs délais, vous avez la possibilité de nous signaler une anomalie à l'aide de la case commentaire (attention, cette case ne fait pas acte d'AR)." & vbNewLine
                    rng.InsertAfter vbNewLine & "Commandes complètes :" & vbNewLine

                    ' Copie de la plage
                    rng.InsertParagraphAfter
                    rng.Move 4, 1
                    PlageFeuilleComp.Copy
                    rng.Paste
                    rng.Move 4

                    rng.InsertAfter vbNewLine & "Commandes partielles :" & vbNewLine

                    ' Copie de la plage
                    rng.InsertParagraphAfter
                    rng.Move 4, 1
                    PlageFeuillePart.Copy
                    rng.Paste
                    rng.Move 4

                    rng.InsertAfter vbNewLine & vbNewLine & "Si vous n'êtes pas concerné par ce message, merci de nous le signaler et de nous transmettre les coordonnées de la personne qui gère cette activité." & vbNewLine
                    rng.InsertAfter vbNewLine & "Restant à votre disposition pour toute information complémentaire,"

                    ' Police du corps du mail
                    With rng.Font
                        .Name = "Helvetica"
                        .Size = 11
                        .Color = 10050863
                    End With

                    ' Envoi
                    '.Send

                End With

                ' désassignation des objets
                Set myItem = Nothing: Set wDoc = Nothing

    '// désassignation application Outlook
    Set OL = Nothing

End Sub

Ce que je veux faire mais qui ne fonctionne pas, c'est le "SentOnBehalfOfName...".

Ne faites pas attention si le code n'est pas opti, c'est encore une ébauche et quelques variables sont inutiles (je pense à mes DerCol notamment) et je ferai les vérifications lorsque j'aurai un code qui fonctionne à 100%.

Merci d'avance pour votre aide!

Bonjour à tous,

J'ai une macro me permettant d'envoyer un mail à plusieurs destinataires en même temps. (En gros, un petit outil de mailing).

Le souci, c'est que le corps du mail (qui change à chaque fois), est contenu dans une cellule. (fusionnée pour avoir la place d'écrire )

Dans cette cellule, il y a des phrases en gras, des sauts lignes, des retours à la ligne, etc.

Mais lorsque le mail est généré, Thunderbird ne prend pas en compte toute cette mise en forme. Je retrouve mon texte en un seul tenant, sans mes sauts de ligne.

Est-ce qu'il existe une solution, à part mettre "des balises html" à chaque fois dans ma cellule ?

Merci par avance pour vos réponses,

Sub Envoimail()

Dim destinataire As String
Dim sujet As String
Dim body As String
Dim i As Integer
Dim PJ As String

    With Sheets("Mailing")
        For i = 10 To .[L65536].End(xlUp).Row 

    destinataire = .Cells(i, "L")
    sujet = Range("B7")
    body = Range("B10")
    PJ = Range("L2")

strcommand = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"
strcommand = strcommand & " -compose " & "to='" & destinataire & "'"
strcommand = strcommand & "," & "subject=" & sujet & ","
strcommand = strcommand & "body='" & body & "'"
strcommand = strcommand & "," & "format='" & 1 & "'"
strcommand = strcommand & "," & "attachment=file:///" & PJ

Call Shell(strcommand, vbNormalFocus)

Next i

  End With
End Sub

Bonjour à tous;

Je vous prie de m'aider sur un petit projet, qui me permet de créer un boutton au niveau d'excel, et ce dernier, il sert d'envoyer un mail à travers outlook vers une adresse qui sera précisée sur le code de ma macro "exemple@gmail.com".

Je suis bloqué jusqu'à l'instant sur le code à mettre en place, vu que je suis encore novice dans ce stade.

Alors je vous explique le code que j'aimerai biens si vous pouvez m'aider dessus

Par exemple sur le fichier excel j'ai les données suivantes:

les postes vides: 15

les postes équipés: 20

les postes opérationnels: 60

un boutton sous le nom "générer le nombre des positions", sur ce dernier, je voudrais que le code macro que je vais l'appeler, me permet d'envoyer ces informations dans un tableau à travers outlook sur le corps du mail et non pas en FJ, et que le destinataire et l'objet du mail seront saisis automatiquement.

Merci Bcq pour votre aide

Bonjour à tous

Encore besoin de vous car la vraiment galère

Je m'explique:

Je voudrais

1: envoyer la feuille excel 2014 à mon N+1 en destinataire avec la date du jour dans l'objet et un message ex: voici le planning Cordialement

2: envoyer la feuille excel 2014 à mon N+1 en destinataire et N+2 en copie avec la date du jour dans l'objet et un message ex: voici le planning Cordialement

3: Envoyer la feuille excel 2014 et la feuille titoffe à "titoffe" en destinataire mais en PDF avec la date du jour dans l'objet et un message ex: voici le planning Cordialement

C'est trop compliqué pour mes neurones

En vous remerciant par avance

Titoffe

Bonjour à tous,

Ceci étant mon premier post et n'étant pas développeur (je suis juste un manager geek, bidouilleur d'excel ) veuillez m'excuser si ma question vous parait bête ou le code bidouillé complètement erroné.

Voici le contexte de ma demande dans le cadre de mon boulot :

Nous recevons des mails provenant de formulaires web avec comme expéditeur toujours la même adresse

Ces mails sont toujours construit comme tel :

Bonjour ,

BLA BLA BLA.

Vous trouverez ci-dessous les éléments nécessaires à la prise en compte de sa demande :

Origine de la souscription : xxx

Civilité : xxx

Nom : xxx

Prénom : xxx

Tél : xxx

Email : xxx

Adresse : xxx

Code Postal : xxx

Ville : xxx

Rappel du motif : xxx

Commentaire : xxx

Nous vous remercions de prendre en compte sa demande dans les meilleurs délais.

Cordialement,

Je souhaiterais récupérer l'adresse mail contenu dans le champ "Email :" pour ensuite faire tourner une autre macro d'envoi de mail normé à la liste d'adresses mails extraites.

J'avais trouvé des réponses ici :https://forum.excel-pratique.com/viewtopic.php?t=30977

Mais je n'arrive pas à récupérer ce que je veux.

Je vous mets le code récupéré et bidouillé mais qui ne me donne rien (pas d'erreur de compilation ni d’exécution mais il ne se passe rien lorsque je lance ma macro)

Pourriez-vous m'aider à extraire cette donnée svp ?

Bonjour à tous

J'éspère resoudre mon problème avec votre aide , en effet je connais certe parfaitement les formules excel et de simple code vba mais la le niveau est trop difficile pour moi , je le reconnais.

En effet j'ai un fichier liée a une base de donnée qui peut contenir + de 1000 lignes. je perd donc un temps précieux a tous envoyer 1 par 1

Voila ce que j'aimerais faire ( je suis sous Excel 2013 et Outlook pour les email )

j'aimerais pour m'économiser du temps ( car personnellement on me demande tous et n'importe quoi..)

que:

pour chaque destinataire ( colonne A ) un email soit envoyer avec l'objet ( colonne B) et en texte du mail 4 lignes écrite comme ceux-ci

ligne 1: TEXTE 1 (colonne c )

ligne 2: TEXTE 2 ( colonne d )

ligne 3: texte 3 ( colonne e )

ligne 4 teste 4 ( colonne f )

comme vous pouvez le voir les texte sont diffèrent pour chaque destinataire

Est ce que quelqu'un pourrait me faire un code VBA? vraiment voila plusieurs jours que je parcours les forum a la recherche de code , regarder des vidéos etc...impossible , j'avoue que je n'ai pas asser de compétence

Merci a tous pour votre aide , en espèrent que quelqu'un est une ame charitable

92testenvoie.xlsm (9.38 Ko)

Bonsoir,

J'aurai pour requête d'effectuer une macro de mail dans laquelle le corps de mail serait lié au remplissage d'un tableau.

En effet, à chaque fin de mois je dois effectuer un rappel à plusieurs entités sur des états liquidatifs manquants des centaines d'agents.

J'aimerais donc que le mail puisse indiquer le nom , prénom de l'individu ainsi que le ou les mois manquants.

Ces indications apparaitraient si elle concerne la période entre le premier mois d'année 2019 et la fin de démission/ou le mois en m-1. Car j'envoie le rappel au mois m.

Exemple de raisonnement: Pour un mail envoyé au TGI de Meaux au SIEGE, la macro regarde dans la liste qui travaille dans ces critères puis extrait ceux qui durant leur période d'emploi en 2019 n'ont pas fournis un état et indique le ou les mois en question

exemple: Sulk Viano pour un contrat du 25/08/2018 au 25/06/2019 n'a fourni que 5 états mensuels sur les 6. Le manquant est au mois de mai. Le rendu serait - Sulk Viano: Mai 2019

Pour Vincent Taeo pour un contrat du 01/03/2019 au 15/02/2020, on observe que tous les états sont présents jusqu'a aujourd'hui sauf celui de mars. Le rendu serit - Vincent Taeo :Mars 2019

Qu'en dites vous?

Bonjour au forum,

J'ai un soucis de signature dans un email, le logo de l'entreprise ne s'affiche pas.

Du coup, je pensais faire un mail template avec le tableau déjà positionné dans le corps de mail. Puis actualiser le tableau (copier coller des données). Vous en pensez quoi?

Comme ça je garde la signature par défaut.

Ouverture mail template.

 
 Set myolapp = Outlook.Application
    Set MyItem = myolapp.CreateItemFromTemplate("K:\ETAT.msg")
    MyItem.Subject = "ETAT - " & Date
    MyItem.Display

le tableau :

capture tab email

Merci par avance,

Bon w-k

Bonjour,

j'ai réussi a développer une macro qui envoi en automatique a un mail Outlook avec une pièce attaché.

le soucis c'est que je n'arrive pas a faire un saut de ligne (un retour a la ligne) dans le corps du mail.

je veux que mon mail soit comme ça:

bonjour,

ci joint la situation relais du jour.

j'ai bien essayé les & Chr(10) & & Chr(13) & & vbCr & mais ça ne marche pas. le code qui permet de joindre le corps du mail est

.HTMLBody = " Bonjour," & vbCrLf & "ci joint le fichier en pdf de la situation du jour " & .HTMLBody 

si je met .body au lieu de htmlbody ça me fait le saut de ligne mais au dessous de la signature. c'est pas logique.

quelqu'un peut m'aider SVP.

'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------
   'Exemple pour envoyer un classeur en pièce jointe
   'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
   'If Nom_Fichier = "Faux" Then Exit Sub
'---------------------------------------------------------
   'Ou bien entrer le path et nom du fichier autrement
   Nom_Fichier = FindLastFile("Y:\Pré-op\SOPP et RELAIS\RELAIS\Situation Relais V2\sortie\carte")
   MsgBox Nom_Fichier 'vérifier si le fichier est bien trouvé
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
     With oBjMail
       .Display
       .To = " ***********@gmail.com" ' le destinataire
       .Subject = "meteo des relais du " & Date          ' l'objet du mail
       .HTMLBody = " Bonjour," & vbCrLf & "ci joint le fichier en pdf de la situation du jour " & .HTMLBody  'le corps du mail ..son contenu
       .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
       .GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
       .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
       .Send
    End With
    MsgBox "Mail envoyé"
    'ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

Bonjour,

Je dispose d'une macro me permettant d'envoyer une feuille Excel par mail directement via Outlook. Cette macro fonctionne très bien cependant j'aimerais pouvoir mettre un texte dans le corps du message, or je n'arrive pas à ajouter cette fonction dans les lignes de code VBA.

Voici ce que j'ai pour le moment :

Sub EnvoiMail()

Dim Destinataires(1) As String, Sujet As String

Dim AccuseReception As Boolean

'Modifier les mails des destinataires

Destinataires(1) = "xxxxx@xxxx.fr"

Sujet = "Commande consommable"

AccuseReception = False

'Nom de la feuille (remplacer Recap par celui de la Feuille à envoyer)

ThisWorkbook.Sheets("feuille de commande").Copy

ActiveWorkbook.SendMail Destinataires, Sujet, AccuseReception

ActiveWorkbook.Close False

End Sub

Voici ce que j'ai essayé et qui ne marche pas (en rouge ce que j'ai ajouté) :

Sub EnvoiMail()

Dim Destinataires(1) As String, Sujet As String, body As String

Dim AccuseReception As Boolean

'Modifier les mails des destinataires

Destinataires(1) = "xxxx@xxx.fr"

Sujet = "Commande consommable"

body = "Bonjour voici ci joint le document consommable"

AccuseReception = False

'Nom de la feuille (remplacer Recap par celui de la Feuille à envoyer)

ThisWorkbook.Sheets("feuille de commande").Copy

ActiveWorkbook.SendMail Destinataires, Sujet, body, AccuseReception

ActiveWorkbook.Close False

End Sub

D'avance merci,

Cordialement

Slyss

bonjour à tous,

petite pb avec l'envoi de mail avec excel et VBA

j'utilise : shell("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe" -osint -compose to='.....)

pour ouvrir thunderbird en mode édition avec des données pré-rentrées :

expéditeur, destinataires, sujet, corps de texte, fichier joint, cc, ...

ça marche nickel, mais si j'entre une virgule dans le paramètre "body", le reste du corps de texte est tronqué

y a -t-il une méthode pour lui indiquer que la virgule fait partie du champs texte, et n'est pas un séparateur de la ligne de commande ?

merci d'avance de vos réponses

Bonjour,

Je souhaite créer un mail sur Lotus Notes à l'aide d'une macro excel. Le mail se cré mais impossible de faire une mise en forme.

Comment faire pour modifier le "message$" pour qu'il soit au format HTML afin que je puisse mettre en gras et centrer certaines parties du texte ?

Voici ma macro

' --------- Envoi d'un mail avec Lotus Notes ---------- .
'Ajouter la référence Lotus Domino Objects (domobj.tlb) .
'Cocher Référence  [x]Lotus Domino Objects              .

Public Sub RoutineEnvoiMailLotus()
Application.ScreenUpdating = False

With Sheets("Echéancier")
    Ref = .Range("B1")
    Nom = .Range("B2")
    Adresse = .Range("B3")
    Dette = .Range("D1")
    PCE = .Range("G6")
    Compteur = .Range("G7")
    Matricule = .Range("G8")
    Téléphone = .Range("G9")
    Commentaire = .Range("G10")
    Champ1 = "PCE---------------------------: "
End With

With Sheets("Echéancier")
If PCE = "" Or Compteur = "Oui" And Matricule = "" Or Téléphone = "" Or Commentaire = "" Or Ref = "" Or Nom = "" Or Adresse = "" Or Dette = "" Then
MsgBox "Veuillez Remplir tous les champs avant d'envoyer le mail", vbOKOnly + vbCritical, "Attention"
Exit Sub
Else

'------- compléter les variables nécessaires pour envoi --------------
AdresDestinataire$ = "mathieu.vareliette@erdf-grdf.fr" 'si plusieurs adresses séparer par le point virgule !
Sujet$ = "Rétablissement PDD" & " - " & "PCE " & PCE ' sujet

Message$ = "Bonjour," & vbCrLf & vbCrLf & "Je t 'envoie les informations concernant le rétablissement gaz suite PDD." & vbCrLf & vbCrLf & "1 - IDENTIFICATION DU CLIENT / DEMANDE" & vbCrLf & vbCrLf & Champ1 & PCE & vbCrLf & vbCrLf & " IGOR--------------------------: " & Ref & vbCrLf & vbCrLf & "Nom du client-----------------: " & Nom & vbCrLf & vbCrLf & "Adresse de livraison----------: " & Adresse & vbCrLf & vbCrLf & "Téléphone du client-----------: 0" & Téléphone & vbCrLf & vbCrLf & "Compteur sur place------------: " & Compteur & "      " & " Matricule : " & Matricule & vbCrLf & vbCrLf & "Montant-----------------------: " & FormatNumber(Dette, 2) & vbCrLf & vbCrLf & "Echéancier-------------------: Voir Pièce jointe " & vbCrLf & vbCrLf & "Commentaire-------------------: " & Commentaire 'message
Fichier$ = Nom & " Engagement de Paiement.docx" ' "NomDuFichier.xls"
Chemin$ = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours\" & "\" & Nom & " " & Ref ' chemin du fichier exp: = ThisWorkbook.Path
If Chemin$ > "" And Right(Chemin$, 1) <> "\" Then Chemin$ = Chemin$ & "\"
CheminEtFichier$ = Chemin$ & Fichier$

'------ départ envoi messagerie --------
'met en tableau si plusieurs adresses !?
If InStr(AdresDestinataire$, ";") = 0 Then AdresDestinataire$ = AdresDestinataire$ & ";"
Dim TabloAdresDestin As Variant
TabloAdresDestin = Split(AdresDestinataire$, ";")

'------ préparation session ------
On Error GoTo ErreurNET: Err.Clear

Dim oSession As Object     'CreateObject("Notes.NotesSession")
Dim UserName As String     'Nom d'utilisateur
Dim DataBase As Object     'Base des mails
Dim DataBaseName As String 'Nom de la base
Dim Document As Object     'Mail
Dim AttachME As Object     'Fich joint en RTF
Dim AttachF1 As Object     '1' pièce attachée

' Création de la session
Set oSession = CreateObject("Notes.NotesSession")
' Récupèration du nom d'utilisateur
UserName = oSession.UserName
DataBaseName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
' Ouvre la base des mails (si fermé, ouvre et demande le password)
Set DataBase = oSession.GetDataBase("", DataBaseName)
If Not DataBase.IsOpen Then DataBase.OpenMail

'       boucle envoi au(x) destinataire(s)
For I = LBound(TabloAdresDestin) To UBound(TabloAdresDestin)
 If Trim(TabloAdresDestin(I)) > "" Then
    AdresDestinataire$ = TabloAdresDestin(I)
    'crée le document et colle /AdresDestinataire /Sujet /Message
    Set Document = DataBase.CreateDocument
    Document.Form = "Memo"
    Document.Sendto = AdresDestinataire$
    Document.Subject = Sujet$
    Document.body = Message$
    'Joint le Fichier s'il y a !?
    If CheminEtFichier$ <> "" Then
       Set AttachME = Document.CreateRichTextItem("Attachment")
       Set AttachF1 = AttachME.EmbedObject(1454, "", CheminEtFichier, "Attachment")
    End If
    'Envoi le Mail
    Document.SaveMessageOnSend = True 'True = save dans les courriers envoyés
    Document.PostedDate = Now() ' date du jour
    Document.Send 0, AdresDestinataire$ 'envoi
    'reinit adresse suivante !?
    Set Document = Nothing: Set AttachME = Nothing: Set AttachF1 = Nothing
 End If
Next
GoTo FinMail ' fin ########################################################

ErreurNET:
Msg$ = "Erreur " & Err.Source & "  No " & Err.Number & vbLf & vbLf & Err.Description
t$ = "Envoi Mail: Problème de connexion !?"
MsgBox Msg$, vbCritical, t$, Err.HelpFile, Err.HelpContext
GoTo FinMail

FinMail:
'libère les variables Object
Set oSession = Nothing: Set DataBase = Nothing
Set Document = Nothing: Set AttachME = Nothing: Set AttachF1 = Nothing
On Error GoTo 0: Err.Clear
Application.ScreenUpdating = True

End If
End With
End Sub

Merci par avance.

Matthieu

Bonjour, étant novice dans le VBA.

J'ai réussis à créer un code me permettant d'envoyer un email avec en pièce jointe l'onglet désiré, mais j'aimerais dans l'objet ainsi que dans le corps du message, il y ai la référence à une cellule E3 (date "dddd-mmm-aaaa") et là je n'y arrive pas

Sub envoiVHDIMANCHE()
ActiveSheet.Range("A1:M81").Select ' la plage de cellules a envoyer
ActiveWorkbook.EnvelopeVisible = True

With ActiveSheet.MailEnvelope
    .Introduction = "Bonjour, veuillez trouver ci-joint la liste du "  'j'aimerais avec la date de la cellule E3 après le du
    .Item.To = "xxxxxx@yyyyyyyy.org"
    .Item.Subject = "Liste du "  'j'aimerais avec la date de la cellule E3 après le du
    .Item.Send
End With
End Sub

Pour info, la Cellule E3 s'incrément uniquement lorsque l'on met une date (de 01 à 31) en renommant l'onglet

Merci pour votre aide

Bonsoir,

J'ai créé une macro pour l'automatisation avec envoi de mail (outlook) mais je ne parviens pas à le faire.

Ce que j'aimerai c'est que dans le corps il me mette le résultat de ma macro et également un texte sur plusieurs lignes?

ex:

Bonjour,

Pouvez-vous passer xxxxxx

Merci d'avance

Nom + prénom

et en dessous ce ces lignes mettre le tableau (résultats de la macro (colonne A:N)

Merci d'avance pour votre aide et support

Bonjour à tous, nouvelle embûche pour moi ^^

Je souhaite utiliser le content d'un textbox multilige dans le corps d'un message mail.

Ca c'est la partie facile, j'y arrive.

j'utilise ce code

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

    strbody = F_Mail.TextBox1.Text

On Error Resume Next

    With OutMail
        .Display
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = F_Mail.Txt_Titre
        .HTMLBody = "<img src=" & logo & ">" _
             & "<br /><br /><br />" _
                & strbody & "<br /><br /><br />" _
                    & .HTMLBody

    End With

J'arrive à mettre en forme le texte en utilisant les balises HTML directement dans la textbox

ex : Bonjour, <br> bla bla bla <br> Corialement,

Ma question est t'il possible d'y intégrer des variables et si oui comment faire ? Car je n'y parvient pas.

Si je rentre dans le code vba je sais intégrer des variables ça fonctionne parfaitement , mais je ne sais pas comment remplir la textbox pour obtenir la même chose.

strbody = "Bonjour " &  me.titre & " " & me.nom & "<br>" &  _
                  "bla bla bla <br>" & _
                  "Corialement"

Est t'il possible de le faire ? si oui comment ?

Merci par avance

Bonjour le Forum,

j'ai un fichier qui reprend des informations à la ligne et en sélectionnant une cellule d'une ligne, cela permet par le billet d'un bouton de préparer automatiquement à l'envoi d'un mail sur outlook, avec un message paramétré d'après la sélection des cellules sélectionnées.

Je précise que c'est un programme en vba trouvé sur le net que j'ai adapté. Celui ci est en mode texte et normalement est décomposé par plusieurs paragraphes et sauts de lignes.

je rencontre un problème sur le fait que celui ci m'affiche sur Outlook, l'ensemble du corps du message sur une seule et même ligne dans le mail, malgré des " chr ( 13) & chr ( 10 )" ou vBcr de mis.

Par ailleurs en 2 ème , je souhaiterai à ce qu'il procède éventuellement à un envoi direct, pour cela j'ai inséré à la fin, la syntaxe ".Send", mais rien n'y fait

Si quelqu'un a une solution, je l'en remercie.

je joins le fchier qui sera plus explicite.

Cordialement,

Mamarus

Bonjour à tous,

Mon fichier récupère une base de données en ligne,met en forme la valeur numérique souhaité sous Power Query puis affiche un graphique de cette valeur.

L'ultime but est d'envoyer un mail lorsque cette valeur numérique (via une moyenne glissante) dépasse une consigne. Cela fonctionne avec le code actuel.

Cependant je souhaite envoyer à travers le mail la photo du graphique. En piéce jointe, cela est fait mais je souhaite l'ajouter en corps de mail pour une lecture sur mobile.

Dans le module 4, l'objectif est de faire un screenshot de la page "Grafico" et d'enregistrer l'image obtenu dans le dossier du fichier excel.

Dans le module 1, j'applique simplement une formule à la colonne "E" pour avoir une moyenne glissante sur les dix dernières valeurs et déclencher l'alerte par mail si le seuil est plus élevé que 0.5.

Le module 2 constitue dans la structure d'envoi du mail.

Sur la "sheet1", c'est la condition pour envoyer le mail lorsque la valeur de la moyenne glissante >0.5

La difficulté pour moi est donc de faire le screenshot au moment ou la valeur glissante est > 0.5. Enregistrer la photo. L'insérer dans le corps du mail puis envoyer le mail.

Dans l'idée, je souhaite (aussi) limiter l'envoi de un mail chaque heure par exemple.

Merci d'avance du coup de main. Bonne journée

capture

Bonjour à tous!

Mille excuses si la question a été posée, mais je ne trouve pas de réponse que je puisse adapter, peut-être à cause de ma version d'Excel ( 2010)

Voilà , je voudrais envoyer un mail directement depuis Excel. J'ai créé un code qui fonctionne bien, sauf que dans le corps du mail je ne peux mettre qu'une seule cellule, je voudrais mettre toute une plage , avec sa mise en forme, ses images, ses liens.

Avec mes meilleurs sentiments.

Dim NomFichier As Variant

NomFichier = Range("N85")

Dim Email As Variant

Email = Range("J13")

Dim MaMessagerie As Object

Dim MonMessage As Object

Set MaMessagerie = CreateObject("Outlook.Application")

Set MonMessage = MaMessagerie.CreateItem(0)

Dim Sujet As Variant

Sujet = Range("A16")

Dim Corps As Variant

Corps = Range("D107"): Voilà la ligne que je voudrais modifier. Si je mets une plage, cela ne fonctionne plus.

MonMessage.To = Email

MonMessage.CC = "Y******@msn.com"

MonMessage.BCC = "Y*******@msn.com"

MonMessage.Attachments.Add NomFichier

MonMessage.Subject = Sujet

MonMessage.Body = Corps

MonMessage.Display

Set MaMessagerie = Nothing

Recherches récentes

image userformcouleur ongletgestiongestion stockgestion paienom ongletonglettrie automatiqueformulaire imagecellulleliste deroulanteincrementerpmujason pmujasonauto openimageimpression imageimpression image deformeeimpression