Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Envoi feuilles par mail

anber

XLDnaute Occasionnel
Bonjour le forum,

J'ai récupéré ce code (qui fonctionne super) pour l'envoi une à une des feuilles d'un classeur :
Je souhaiterai envoyer certaines feuilles à plusieurs destinataires, et d'autres qu'à un seul.
Quelqu'un pourrai-t-il m'aider à faire évoluer ce code en le rendant plus "ouvert" ?
Comment éviter le test d'outlook ?
Merci par avance

Sub Mail_send()
'Working in 97-2007
Dim wb As Workbook
Dim Shname As Variant
Dim Addr As Variant
Dim N As Integer
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long

Shname = Array("CP", "FJ", "FP")
Addr = Array("cp@toto.com", "fj@toto.com", "fp@toto.com")

If Val(Application.Version) >= 12 Then
'You run Excel 2007
FileExtStr = ".xlsm": FileFormatNum = 52
Else
'You run Excel 97-2003
FileExtStr = ".xls": FileFormatNum = -4143
End If

With Application
.ScreenUpdating = False
.EnableEvents = False
End With

TempFilePath = Environ$("temp") & "\"

'Create the new workbooks/Mail it/Delete it
For N = LBound(Shname) To UBound(Shname)

TempFileName = "Devis" & Shname(N) & " " & Format(Now, "dd-mmm-yy h-mm-ss")

ThisWorkbook.Sheets(Shname(N)).Copy
Set wb = ActiveWorkbook

With wb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormatNum
On Error Resume Next
.SendMail Addr(N), _
"Devis"
On Error Resume Next
.Close SaveChanges:=False
End With

Kill TempFilePath & TempFileName & FileExtStr

Next N

With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…