Comment joindre plusieurs fichiers à un mail + mise en forme
thevPassionné d'Excel
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Chez moi, ce code fonctionne parfaitement
Sub Envoi_Mail()
'// Définition des variables
Dim OL As Object, myItem As Object, wDoc As Object, corps As Object, trait As Object, ligne As Object
Dim plage_à_copier As Range
Dim pièces_jointes()
Dim i As Integer
'// définition de la plage de texte à copier
Set plage_à_copier = Range("E4")
'// définition des pièces à joindre
i = 0
pièces_jointes = Array("")
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
If .Show = -1 Then
For i = 1 To .SelectedItems.Count
ReDim Preserve pièces_jointes(i)
pièces_jointes(i) = .SelectedItems(i)
Next i
End If
End With
'// assignation application Outlook
Set OL = CreateObject("Outlook.Application")
If OL.Explorers.Count = 0 Then
OL.Session.GetDefaultFolder(olFolderInbox).Display
OL.ActiveExplorer.WindowState = olMinimized
End If
'// Assignation des objets
Set myItem = OL.CreateItem(olMailItem)
myItem.BodyFormat = 3 'utilisation de l'éditeur Word
'// Création Email et envoi
With myItem
.To = Range("A4")
.CC = Range("B4")
.BCC = Range("C4")
.Subject = Range("E4")
.Display 'affichage pour signature et éditeur Word
' Début du mail
Set wDoc = .GetInspector.WordEditor 'lancement éditeur Word
Set corps = wDoc.Content
Set trait = corps.InlineShapes.AddHorizontalLineStandard
Set ligne = trait.Range
' Fin du mail avec copie de la plage
ligne.Move 4, 2
plage_à_copier.Copy
ligne.Paste
ligne.Move 4, 1
ligne.InsertBefore vbNewLine
' Joindre les fichiers
For i = 1 To UBound(pièces_jointes)
.Attachments.Add pièces_jointes(i), 1, 1, "pièce"
Next i
.Send 'envoi
End With
End Subk
voici le code vous comprendrez peut etre mieux avec un code pour les pieces jointes ce que je veux dire
Private Sub test_Click()
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Object
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xOutApp.CreateItem(olMailItem)
.Display
.To = Range("A6")
.CC = Range("B6")
.BCC = Range("C6")
.Subject = "test"
.HTMLBody = "bonjour" & .HTMLBody
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
End Sub