Mails et Excel

G

Gillou

Guest
Bonjour à toutes et à tous,
j`aimerai faire de l´envoie de mail automatique par macro.
Dans une feuille excel j´ai toutes les données stockées qui permettent d´envoyer ce mail (adresse à qui envoyer (A et cc), Objet, pièce jointe, message, signature et tout et tout). Cet envoie devra ce faire lorsque je clique sur un boutton. Tout est fait et configuré sauf la partie purement mail car je sais pas du tout comment faire. Quelqu´un ou quelqu´une aurait il un tuyau????
Merci d´avance car je suis un peu en galère
Gillou
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Gillou, le Forum

Tu ne précises pas si tu travailles avec Outlook (d'Office) pas Outlook Express...

Voici un extrait d'une Méthode pour Outllook 2000 / XP 2002-2003 que j'utilise professionnellement depuis des années... (Désolé je bosse en anglais)

Méthode pour Outlook livré avec Office
Code:
Option Explicit
Const FilePathDaily As String = 'I:\\MC_PROD\\Reports\\Daily\\'
Const MailTo As String = 'TheChief@xld.fr; [email]TheSubChief@xld.fr[/email]'
Const MailCC As String = 'TheAccounts@xld.fr; [email]TheStats@xld.fr[/email]; [email]TheCash@xld.fr[/email]'

' NB => Needs Refrerence to Microsoft Outlook XX.0 Object Library via VBA / Tools

Sub TheEmailViaOutLook() '@+Thierry
Dim TheOLapp As Outlook.Application, TheOLitem As Outlook.MailItem
Dim TheMessage As String


TheMessage = 'Good Morning,' & vbCrLf & vbCrLf & _
'= = = This is an automatic generated email = = =' & vbCrLf & vbCrLf & _
'Please find enclosed the Transactions Report for ' & Format(Date, 'DDDD') & ' ' & Format(Date, 'DD/MM/YYYY') & vbCrLf & _
'Best Regards' & vbCrLf & '@+Thierry' & vbCrLf & vbCrLf

Set TheOLapp = CreateObject('Outlook.Application')
Set TheOLitem = TheOLapp.CreateItem(OlMailItem)
    With TheOLitem
        .To = MailTo
        .CC = MailCC
        .Importance = olImportanceNormal
        .Subject = 'Daily Transactions Summary Reports (' & Format(Date, 'YYYY-MM-DD') & ')'
        .Body = TheMessage
        .Attachments.Add FilePathDaily & 'TheFile-' & Format(Date, 'YYYY-MM-DD') & '.xls'
        .Categories = 'Daily-Report'
        .OriginatorDeliveryReportRequested = True
        .ReadReceiptRequested = True
        '.Send '

Message édité par: _Thierry, à: 24/02/2005 12:35
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Arf

Il semble qu'il y ait problème sur le Forum pour longueurs de ligne / de code...

Je remets sans fioriture :

Option Explicit
Const FilePathDaily As String = 'I:\\MC_PROD\\Reports\\Daily\\'
Const MailTo As String = 'TheChief@xld.fr; TheSubChief@xld.fr'
Const MailCC As String = 'TheAccounts@xld.fr; TheStats@xld.fr; TheCash@xld.fr'

' NB => Needs Refrerence to Microsoft Outlook XX.0 Object Library via VBA / Tools

Sub TheEmailViaOutLook() '@+Thierry
Dim TheOLapp As Outlook.Application, TheOLitem As Outlook.MailItem
Dim TheMessage As String


TheMessage = 'Good Morning,' & vbCrLf & vbCrLf & _
'= = = This is an automatic generated email = = =' & vbCrLf & vbCrLf & _
'Please find enclosed the Transactions Report for ' & Format(Date, 'DDDD') & ' ' & Format(Date, 'DD/MM/YYYY') & vbCrLf & _
'Best Regards' & vbCrLf & '@+Thierry' & vbCrLf & vbCrLf

Set TheOLapp = CreateObject('Outlook.Application')
Set TheOLitem = TheOLapp.CreateItem(OlMailItem)
With TheOLitem
.To = MailTo
.CC = MailCC
.Importance = olImportanceNormal
.Subject = 'Daily Transactions Summary Reports (' & Format(Date, 'YYYY-MM-DD') & ')'
.Body = TheMessage
.Attachments.Add FilePathDaily & 'TheFile-' & Format(Date, 'YYYY-MM-DD') & '.xls'
.Categories = 'Daily-Report'
.OriginatorDeliveryReportRequested = True
.ReadReceiptRequested = True
'.Send '
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Arf OK Capito !!! :) :) :)

Je reprends :

Code:
Option Explicit
Const FilePathDaily As String = 'I:\\MC_PROD\\Reports\\Daily\\'
Const MailTo As String = 'TheChief@xld.fr; [email]TheSubChief@xld.fr[/email]'
Const MailCC As String = 'TheAccounts@xld.fr; [email]TheStats@xld.fr[/email]; [email]TheCash@xld.fr[/email]'

' NB => Needs Refrerence to Microsoft Outlook XX.0 Object Library via VBA / Tools

Sub TheEmailViaOutLook() '@+Thierry
Dim TheOLapp As Outlook.Application, TheOLitem As Outlook.MailItem
Dim TheMessage As String


TheMessage = 'Good Morning,' & vbCrLf & vbCrLf & _
'= = = This is an automatic generated email = = =' & vbCrLf & vbCrLf & _
'Please find enclosed the Transactions Report for ' & Format(Date, 'DDDD'Â'Â') & ' ' & Format(Date, 'DD/MM/YYYY'Â'Â') & vbCrLf & _
'Best Regards' & vbCrLf & '@+Thierry' & vbCrLf & vbCrLf

Set TheOLapp = CreateObject('Outlook.Application'Â'Â')
Set TheOLitem = TheOLapp.CreateItem(OlMailItem)
    With TheOLitem
        .To = MailTo
        .CC = MailCC
        .Importance = olImportanceNormal
        .Subject = 'Daily Transactions Summary Reports (' & Format(Date, 'YYYY-MM-DD'Â'Â') & 'Â'Â')'
        .Body = TheMessage
        .Attachments.Add FilePathDaily & 'TheFile-' & Format(Date, 'YYYY-MM-DD'Â'Â') & '.xls'
        .Categories = 'Daily-Report'
        .OriginatorDeliveryReportRequested = True
        .ReadReceiptRequested = True
        '.Send 'TO SEND DIRECTLY
        .Display 'TO SEE THE MAIL FIRST
    End With
      
Set TheOLapp = Nothing
Set TheOLitem = Nothing
End Sub

Ce devrait être OK maintenant....

En fait dans 'TO SEND DIRECTLY', il y avait une dizaine de '... signes INFERIEUR'...

Même pas je peux en mettre un là lol

Bon App
@+Thierry

Message édité par: _Thierry, à: 24/02/2005 12:41
 
G

Gillou

Guest
Désoé Thierry mais j´ai un petit pb.
Apparement il y a des choses dont je n´ai pas besoin car toutes les imfos du mails sont dans des cellules mais bon je vais essayer de me débrouiller
. Par contre j´ai une erreur qui se génère : type défini par l´utilisateur non défini( sur la ligne Dim theOLapp...). Tu vas dire que je suis nul mais c´est vrai...
Merci d´avance pour ta réponse
Gillou
 
@

@nono

Guest
Bonjour à tous

tite qestion pour _Thierry :) : pour supprimer le msg de confirmation d'envoi de mail que demande outlook ?... tu connais la clef de registre à modifier / ajouter / supprimer ? :)

parce que j'ai réussi à faire des macros qui fonctionnent impec pour envoyer les mails... par contre outlook demande confirmation à chaque mail envoyé... moyen ^^

J'ai déjà posté sur le sujet il y a très longtemps, mais je n'ai jamais trouvé le truc...

merci de ton aide si tu connais la solution :)
 

rcgozer

XLDnaute Nouveau
salut essaie se code

On Error Resume Next
Dim Mail As MailSender
Dim Subj As String
Subj = Range('i18')
Set Mail = New MailSender
Mail.Host = 'smtp1.sympatico.ca'
Mail.Port = 25
Mail.From = ' xxxxxx '
Mail.AddAddress ' xxxxxxxxxx'
Mail.Body = 'PH distribution trop élevé =' & Subj

Mail.Send

renplace les xx par tes adresses
 

rcgozer

XLDnaute Nouveau
salut essaie se code

On Error Resume Next
Dim Mail As MailSender
Dim Subj As String
Subj = Range('i18')
Set Mail = New MailSender
Mail.Host = 'smtp1.sympatico.ca'
Mail.Port = 25
Mail.From = ' xxxxxx '
Mail.AddAddress ' xxxxxxxxxx'
Mail.Body = 'PH distribution trop élevé =' & Subj

Mail.Send

renplace les xx par tes adresses
 

Discussions similaires

Réponses
6
Affichages
340

Statistiques des forums

Discussions
312 400
Messages
2 088 086
Membres
103 710
dernier inscrit
amin Saadaoui