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:

alexga78

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

Bonsoir roidurif, le forum

un essai en PJ en supposant l'utilisation de outlook pour la messagerie.
Activer la référence Microsoft Outlook X Object Library.

Bonne soirée à tous.
 

Pièces jointes

  • essai.zip
    12.9 KB · Affichages: 176
  • essai.zip
    12.9 KB · Affichages: 180
  • essai.zip
    12.9 KB · Affichages: 173

roidurif

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

Merci infieniment alexga78

Je me retrouve avec un autre probleme, lorsque j'ai 256 donnée rempli sur les 256 colonnes, le fait de l'envoyer par outlook, ca me rétraicit les colonnes à 0,2, donc on a une lecture tres reduite.

Ex ce que le mieux n'est pas de restrancrire en texte brut, je ne sais pas?? ou peut etre as tu une autre proposition

Merci d avance
 
Dernière édition:

alexga78

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

bonjour Roidurif,
si j'ai bien compris tu es limité par la largueur et non par la longueur...
une solution qui peut convenir envoyer le tableau en le transposant...en espérant que cela te conviendra.

Code:
Option Explicit
Dim derli%, dercol%
Dim startoutlook As New Outlook.Application
Sub mail()
Set startoutlook = New Outlook.Application
With Sheets(1)
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(2).Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=True
Selection.EntireColumn.AutoFit
ActiveWorkbook.EnvelopeVisible = True
With Sheets(2).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 = "sujet ?"
.Item.Send
End With
ActiveWorkbook.EnvelopeVisible = False
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(1).Cells(1, 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Bonne journée
 

alexga78

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

bonjour JCGL,

HTML:
 comment se départir de la sécurité Outlook ?

désolé je ne comprends ce que tu veux dire...
pour moi le plus simple serai d'envoyer le classeur en pièce jointe mais bon...
 

Roland_M

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

bonjour à tous

peut être par outlook express !?

classeur ci-joint (voir commentaires dans le code à adapter !)
envoie en pièce jointe ou dans le corps du message !?
 

Pièces jointes

  • OutlookExpress Exemple.xls
    47.5 KB · Affichages: 168
  • OutlookExpress Exemple.xls
    47.5 KB · Affichages: 181
  • OutlookExpress Exemple.xls
    47.5 KB · Affichages: 176

roidurif

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

Bjr alexga78
J'ai un blocage sur cette ligne,

Code:
Sheets(2).Cells(1, 1).Select

J'ai joins mon fichier pour exemple

Merci de votre aide
 

Pièces jointes

  • essai.xls
    39.5 KB · Affichages: 99
  • essai.xls
    39.5 KB · Affichages: 94
  • essai.xls
    39.5 KB · Affichages: 90

JCGL

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

Bonjour à tous,

As-tu deux feuilles dans ton classeur ?

Si non, ajoute en une ou un Sheets.Add

A+ à tous

Code déposé par AlexGA
Code:
Option Explicit
Dim derli%, dercol%
Dim startoutlook As New Outlook.Application
Sub mail()
Set startoutlook = New Outlook.Application
With Sheets(1)
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(1)
ActiveSheet.Name = "Temp"
Sheets("Temp").Cells(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Transpose:=True
Selection.EntireColumn.AutoFit
ActiveWorkbook.EnvelopeVisible = True
With Sheets(2).MailEnvelope
.Introduction = "Bonjour," & Chr(13) & _
"Veuillez trouver ci-dessous la liste des erreurs trouvées à corriger." _
& Chr(13) & Chr(13) & "Cordialement."
.Item.To = "[EMAIL="adresse@adresse.fr"]adresse@adresse.fr[/EMAIL]"
.Item.Subject = "sujet ?"
.Item.Send
End With
ActiveWorkbook.EnvelopeVisible = False
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(1).Cells(1, 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 
Dernière édition:

roidurif

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

Re bonjour,

J'ai remodifier mon tableau à envoyer, cette fois ci il est vertical et non horizontal, plus besoin de le transposer.

Comment faire pour ne plus transposer et envoyer uniquement avec le contenu du tableau ("B12:U12") .End(xlUp).Row, avec toujours le même message de mail

merci
 

Pièces jointes

  • essai.xls
    43 KB · Affichages: 77
  • essai.xls
    43 KB · Affichages: 85
  • essai.xls
    43 KB · Affichages: 95

JCGL

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

Bonjour à tous,

Toujours à partir du code d'Alexga78

Pas testé : je n'ai pas Outlook à la maison

A+ à tous
 

Pièces jointes

  • JC Envoi Courriel.zip
    13.7 KB · Affichages: 99

roidurif

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

Bonjour JCGL et à tous,

Merci pour l 'aide

Toujours à partir du code d'Alexga78, et de ton aide, je ne sais pas si c'est possible d'indiquer dans le mail en plus du message, le nombre d'erreur trouvée dans le tableau.
Il serait intéressant de signalé uniquement lorsqu'une colonne n'est pas vide

exemple :

"Bonjour,

Veuillez trouver ci-dessous la liste des erreurs trouvées à corriger.


Cordialement"

Bien sur, il faut savoir dans cette exemple les autres colonnes du tableau sont vides, mais peuvent être aussi rempli et donc dire dans la macro par exemple si dans colonne H11>0 alors indiquer ## etc...

j'espère avoir été clair et compris

merci
 
Dernière édition:

JCGL

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

Bonjour à tous,

Je ne pense que cela soit possible : déposer des formules dans "l'Envelope"

Pourquoi n'inclues-tu pas un NBVAL() dans une des cellules de la plage ?


A+ à tous
 

roidurif

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

Bonjour,

J'essaie de dire cela si je click sur "envoyer" alors la suite du code...
Je sais pas si je m'y prends bien?
Code:
If .Item.Send = True Then
ActiveWorkbook.EnvelopeVisible = False
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(CONTROLE).Cells(1, 1).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If

Cordialement
 

Discussions similaires

Réponses
16
Affichages
547
Réponses
6
Affichages
311

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 611
dernier inscrit
sebboes