Erreur d'envoie de mail avec la nouvelle version de Outlook
Bonjour le forum,
petit soucis avec une macro, lorsque j'essaye d'envoyer mon mail et que j'utilise le nouvelle version de Outlook j'ai une erreur liée à l'erreur spécifique 429.
Quelqu'un pourrais m'aider svp.
Merci d'avance
' Envoie du mail
Public Sub EnvoyerMail(RepertoryPath$, FileName$)
Dim oOutlook As Outlook.Application
Dim oMailItem As Outlook.MailItem
' On tente de créé un objet Outlook en 2 essais, on vérifie si la création de l'objet Outlook remonte une erreur
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")
' Vérification du retour d'erreur, si supèrieur à 0, pas bon
If Err.Number > 0 Then
' Si erreur spécifique 429 on interrompt la macro, sinon 2ème essai
If Err.Number = 429 Then
MsgBox "Error when opening Outlook"
Exit Sub
Else
Err.Clear
Set oOutlook = CreateObject("Outlook.application")
End If
If Err.Number > 0 Then
MsgBox "Error when opening Outlook"
Exit Sub
End If
End If
' Création d'un objet mail avec vérification d'une remontée d'erreur
On Error Resume Next
Set oMailItem = oOutlook.CreateItem(0)
If Err.Number > 0 Then
MsgBox "Error when generating the mail"
Else
Dim sBody$
sBody = Sheets("Information Page").Range("C32").Value
With oMailItem
.To = Func_additionnel.DefinitionDestinataire(Sheets("Drop List").ListObjects("Tab_To"))
.CC = Func_additionnel.DefinitionDestinataire(Sheets("Drop List").ListObjects("Tab_Cc"))
.Subject = "OPR request for the project " & Sheets("OPR info").Range("B11").Text & " - " & Sheets("Information Page").Range("C13").Text
.BodyFormat = olFormatHTML 'olFormatPlain
.Body = Func_additionnel.InsertionCommentaireMail(Sheets("OPR info").Range("B2").Value, sBody)
.Attachments.Add RepertoryPath & FileName
.Display ' A décommenter si le mail dois s'afficher avant envoi manuel
'.Send ' A décommenter si le mail dois s'envoyer directement
End With
End If
' On supprime les objets de la mémoire
Set oOutlook = Nothing
Set oMailItem = Nothing
End SubBonjour,
Qu'entends-tu par "Nouvelle version de Outlook" ?
Microsoft 365 ou la version Online ?
Bizz
Bonne question en effet...
J'ai un bouton "nouvelle version d'Outlook" dans outlook (version PC) et j'ai pas réfléchis plus loin, mes excuses...
Il s'agit de Microsoft 365.
Bonjour Heavy_B
La nouvelle version d'Outlook est basée sur Outlook Online d'où le souci pour moi
Perso, j'ai désactivé cette version
A+
J'avais déjà pensé a cela et je te rejoint JExceL2fr.
Malheureusement pour le moment on as encore le choix dans mon entreprise mais je crain qu'as l'avenir on ne l'ai plus, et dejà beaucoup de collègue y sont passé...
Re,
Il faudra alors passer au Script Office, quand ce sera possible, sinon pas d'autres solutions
En revanche pour ton code, tu peux utiliser cette fonction
Option Explicit
Function CreateOutlook() As Object
Dim Outlook As Object
On Error Resume Next
Set Outlook = GetObject(, "Outlook.Application")
On Error GoTo 0
If Outlook Is Nothing Then Shell "Outlook"
On Error Resume Next
Do While Outlook Is Nothing
Set Outlook = GetObject(, "Outlook.Application")
Loop
On Error GoTo 0
Set Outlook = CreateObject("Outlook.Application")
Outlook.ActiveWindow.WindowState = 1
Set CreateOutlook = Outlook
Set Outlook = Nothing
End FunctionEt tu l'appelles par
Set oOutlook = CreateOutlook()A+
Désolé JExceL2fr mais je suis encore débutant et certaines choses ne sont pas évidente pour moi :
si je comprend bien je place le code que tu me donne dans un module et je l'appelle via la ligne de code mais que je place ou, ou plutot à la place de quoi?
Merci
Re,
C'est une fonction, tu la met dans le module que tu veux, perso j'en ai toujours un qui s'appelle "Fonctions"
Et sinon pour l'appel, c'est à la place de ta ligne
Set oOutlook = GetObject(, "Outlook.Application")J'espère que ce sera plus clair
Merci beaucoup et désolé de la bête question...
Autre bête question, ce change quoi?
Re,
Dans votre précédent, vous ne faites qu'un Get de l'application, donc si Outlook n'est pas lancé ça plante
Avec cette fonction, soit c'est un Get (application déjà ouverte) soit c'est un Create (application à lancer en late binding)
A+
D'ou le fait qu'il as ré-ouvert un second outlook 365 dans mon essais, par contre dans ce cas là Excel tourne en boucle et ne répond plus...
Merci pour les infos