Macro Envoi E-mail automatique du contenu de la feuille

roidurif

XLDnaute Occasionnel
bonjour,

Je souhaite automatisé par un simple click bouton, l'envoi par email, le contenu du tableau de la feuil1 précédé d'un message typique.

Exemple de message email :

"Bonjour,

Trouvez ci dessous la liste des erreurs trouvés et à corriger"

###############################
###############################
###############################
##### TABLEAU DU FICHIER JOINT#######
###############################
###############################
###############################
###############################


Cordialement"


Merci de votre aide
 
Dernière édition:

jetted

XLDnaute Occasionnel
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour à tous,

alexga78: Sujet moult fois évoqués mais jamais vraiment réglé : comment se départir de la sécurité Outlook ?

A++
A+ à tous
Sans necessairement sans debarrassé, vous pouvez contourner la securite en ajoutant ce bout de code
Code:
Application.Wait (Now + TimeValue("0:00:05"))
Application.SendKeys "%S"
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%{s}", True 'send the email without prompts
 

JCGL

XLDnaute Barbatruc
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour à tous,

J'avais déjà tenté avec :
Code:
 SendKeys "%{s}", True
Je viens de réessayer en le couplant au Wait : rien de concluant...

Est-ce que cela fonctionne chez toi ?

A+ à tous
 

FREMEAGE

XLDnaute Nouveau
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour,

Je me permets de m'immiscer dans votre conversation.
La macro fonctionne parfaitement chez moi mais comment faites-vous pour que ce soit la feuille "SYNTHESE" qui soit envoyée et non la feuille 1?

En espérant ne pas vous perturber.
Merci
 

roidurif

XLDnaute Occasionnel
Re : Macro Envoi E-mail automatique du contenu de la feuille

JCGL

Je sais pas à qui tu t adresses en disant si sa fonctionne, es ce que c'est à moi?
C'est quoi l'histoire de la sécurité de outlook, qu'es ce qu elle empêche de faire?

merci
 

vbacrumble

XLDnaute Accro
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour


Porque personne n'apprécie CDO et sa commodité ?

Ron , il aime bien lui CDO ;)
Why using CDO code instead of Outlook automation or SendMail in VBA.

1: It doesn't matter what Mail program you are using (It only use the SMTP server).
2: It doesn't matter what Office version you are using (97…2007)
3: You can send a range/sheet in the body of the mail (some mail programs can’t do this)
4: You can send any file you like (Word, PDF, PowerPoint, TXT files,….)
5: No Security warnings anymore, really great if you are sending a lot of mail in a loop.

http://www.rondebruin.nl/cdo.htm
 

Manu62

XLDnaute Impliqué
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour,
Ci dessous le code que j'utilse pour l'envoi de mail depuis excel.
Attention, mon code enregistre sous pdf (via pdf creator a adapter si enregistrement sous xls).
Code adapter par ce forum...
Il marche plutot pas mal. J'ai aussi le problème de sécurité outlook, chose que j'ai eu depuis l'instal d'un nouveau antivirus.
C'est pour cela que j'ai display au lieu de send.

'Code pdf + mail
Private Sub CommandButton70_Click()
Dim NomImpDefaut As String
NomImpDefaut = Application.ActivePrinter
'Author : Ken Puls (Excelguru.ca | Tips and pointers for Excel and other MS Office applications)
'Macro Purpose: Print to PDF file using PDFCreator
' (Download from SourceForge.net: PDFCreator)
' Designed for early bind, set reference to PDFCreator
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim RetVal As Variant
'/// Change the output file name here! ///
Sheets("Bon de Commande").Select
sPDFName = "Q10"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + _
vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
'.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveDirectory") = Range("Q11")
.cOption("AutosaveFilename") = Range("Q10")
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With
'Print the document to PDF
Sheets("Bon de Commande").Select
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Wait until PDF creator is finished then release the objects
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
RetVal = Shell("Taskkill /IM PDFCreator.exe /F", 0)
' pdfjob.cClose
Set pdfjob = Nothing
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)
Set myAttachments = MItem.Attachments
myAttachments.Add Range("Q12").Value 'Pas de signe "=" apres Add
With MItem
.To = [Q25]
.Subject = "mettre ici ton sujet"
.Body = "mettre ici le texte. "
.Display 'ou .send
End With
Sheets("- MENU GENERAL -").Select
Application.ActivePrinter = NomImpDefaut
End Sub

Bon courage.

Manu
 

roidurif

XLDnaute Occasionnel
Re : Macro Envoi E-mail automatique du contenu de la feuille

Re,

Si je comprends bien, ca voudrais dire que je dois écrire le code comme cela, si je click sur Envoyer, alors supression feuil(2) etc....
Code:
If Display = true then
ActiveWorkbook.EnvelopeVisible = False
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(1).Cells(1, 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

merci
 

roidurif

XLDnaute Occasionnel
Re : Macro Envoi E-mail automatique du contenu de la feuille

Re-bonjour,

Je ne sais pas exprimé par un code, Si je clic sur envoyer, alors la "feuille2" est suprimée.

Code:
If Display = true then
ActiveWorkbook.EnvelopeVisible = False
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(1).Cells(1, 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True

merci[/
 

roidurif

XLDnaute Occasionnel
Re : Macro Envoi E-mail automatique du contenu de la feuille

Bonjour vbacrumble;


J'ai bien lu ton liens en anglais et je ne vois pas comment ajuster ce code avec le code de Alexga78 et JCGL.

Code:
Sub Mail()
Dim Derli%, Dercol%
Dim StartOutlook As New Outlook.Application
Set StartOutlook = New Outlook.Application
With Sheets("Data")
Application.ScreenUpdating = False
Derli = .Range("A1").SpecialCells(xlCellTypeLastCell).Row
Dercol = .Range("A1").SpecialCells(xlCellTypeLastCell).Column
.Cells(2, 1).Resize(Derli + 1, Dercol).Copy
End With
Sheets.Add After:=Sheets("Data")
ActiveSheet.Name = "Temp"
Sheets("Temp").Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll  '  , Transpose:=True
Selection.EntireColumn.AutoFit
ActiveWorkbook.EnvelopeVisible = True
With Sheets("Temp").MailEnvelope
.Introduction = "Bonjour," & Chr(13) & _
"Veuillez trouver ci-dessous la liste des erreurs trouvées à corriger." _
& Chr(13) & Chr(13) & "Cordialement."
.Item.To = "adresse@adresse.fr"
.Item.Subject = "Liste des erreurs trouvées"
'.Item.Send
End With
'ActiveWorkbook.EnvelopeVisible = False
'Application.DisplayAlerts = False
'Sheets("Temp").Delete
'Sheets("Data").Activate
'Cells(1, 1).Select
'Application.ScreenUpdating = True
'Application.DisplayAlerts = True
'    Application.CutCopyMode = False
End Sub

Merci
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
606
Réponses
6
Affichages
347

Statistiques des forums

Discussions
312 505
Messages
2 089 066
Membres
104 015
dernier inscrit
kkgk