halecs93
XLDnaute Impliqué
Bonjour,
J'ai bricolé un code VBA qui me permet de générer et d'envoyer automatiquement un mail. De chez moi, ça semble fonctionner, dans la mesure où j'utilise outlook.
Mais, j'ai voulu l'utiliser au niveau pro, et là ça bug... en effet, c'est outlook en ligne qui est utilisé : https://outlook.office.com/mail/ et de plus, via Sharepoint.
Y aurait-il un moyen de modifier mon code ?
Un grand merci
J'ai bricolé un code VBA qui me permet de générer et d'envoyer automatiquement un mail. De chez moi, ça semble fonctionner, dans la mesure où j'utilise outlook.
Mais, j'ai voulu l'utiliser au niveau pro, et là ça bug... en effet, c'est outlook en ligne qui est utilisé : https://outlook.office.com/mail/ et de plus, via Sharepoint.
Y aurait-il un moyen de modifier mon code ?
VB:
Option Explicit
Sub EnvoiMail()
Dim ListeDest() As Variant
Dim ListeComment() As Variant
Dim i As Long
Dim oMsgApp As Object
Dim oMsg As Object
Dim ws As Worksheet
Dim DestName As String
Dim DestEmail As String
Dim PDFPath As String
'Définir la feuille de calcul Feuil1
Set ws = ThisWorkbook.Sheets("mail")
'Obtenir le nom de l'onglet actif
DestName = ActiveSheet.Name
'Rechercher le nom du destinataire dans la colonne A de la Feuil1
DestEmail = ""
For i = 1 To ws.Cells(ws.Rows.count, "A").End(xlUp).Row
If ws.Cells(i, "A").Value = DestName Then
DestEmail = ws.Cells(i, "B").Value
Exit For
End If
Next i
'Vérifier si l'adresse e-mail du destinataire a été trouvée
If DestEmail = "" Then
MsgBox "Aucune adresse e-mail trouvée pour le destinataire " & DestName, vbExclamation
Exit Sub
End If
'Générer le fichier PDF de la feuille active
PDFPath = ThisWorkbook.Path & "\" & DestName & ".pdf"
With ws.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = False
End With
ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFPath, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'Créer une instance de l'application Outlook
Set oMsgApp = CreateObject("Outlook.Application")
'Remplir les tableaux avec les adresses e-mail et les commentaires
ListeDest() = Array(DestEmail)
ListeComment() = Array(ws.Range("B" & i).Value) ' Supposons que les commentaires soient également dans la Feuil1 en colonne B
'Envoyer des e-mails aux destinataires
For i = LBound(ListeDest) To UBound(ListeDest)
Set oMsg = oMsgApp.CreateItem(0)
With oMsg
.To = ListeDest(i)
.Attachments.Add PDFPath ' Attache le fichier PDF directement au mail
.Subject = ThisWorkbook.Sheets("mail").Range("G1").Value
.Body = "Bonjour," & Chr(10) & Chr(13) & _
ThisWorkbook.Sheets("mail").Range("G2").Value & " " & Format(ThisWorkbook.Sheets("mail").Range("J1").Value, "dd mmm yyyy") & Chr(10) & Chr(13)
.Send
End With
Set oMsg = Nothing
Next
'Quitter l'application Outlook
oMsgApp.Quit
Set oMsgApp = Nothing
'Afficher un message de confirmation avec l'adresse e-mail
MsgBox "Mail envoyé à " & DestEmail, vbInformation
End Sub
Un grand merci