Envoi mail unique a 1 ou plusieurs destinataires

Bonjour le forum,

J'ai un souci avec la macro suivante:

Sub test()

Dim oOutlook As Object
Dim oMail As Object
Dim oObjetWord As Object
Dim Sujet As String
Dim rng As Range

Set oOutlook = CreateObject("Outlook.Application")

Set oMail = oOutlook.CreateItem(0)

    With oMail

For Each rng In Range("P44:U45")
If rng <> "" Then

      .Recipients.Add (Replace(LCase([rng]), " ", ".") & "@" & "test.fr")
      .Subject = "Test"
      .HTMLBody = "<html><body>Bonjour,<br><br>" _
    & "Ceci est un test.<br><br>" _
    & "Veuillez ne pas en prendre compte.<br><br>" _
    & "Cordialement.<br><br>"
      '.Display
      .Send

End If
Next rng

    End With

End Sub

Lorsque je renseigne une seule cellule de la plage, l'envoi du mail se fait sans problème.

Dès que je renseigne une deuxième cellule, j'ai une erreur "&h8004010a"

Par contre si je fais ".Display", les 2 destinataires s'affiche bien.

Je ne comprends pas d'où vient le problème

NB: le "test.fr" dans Recipients.Add est évidemment factice, l'adresse réelle étant celle du boulot.

Merci d'avance à celui qui se penchera sur mon souci.

Cordialement.

Bonjour Nico68,

Un essai non testé :

Sub test()
   Dim oOutlook As Object
   Dim oMail As Object
'   Dim oObjetWord As Object ' n'est pas utile
   Dim Sujet As String
   Dim rng As Range

   Set oOutlook = CreateObject("Outlook.Application")

   For Each rng In Range("P44:U45")
      If rng <> "" Then
         Set oMail = oOutlook.CreateItem(0)
         With oMail
            .Recipients.Add (Replace(LCase([rng]), " ", ".") & "@" & "test.fr")
            .Subject = "Test"
            .HTMLBody = "<html><body>Bonjour,<br><br>" _
               & "Ceci est un test.<br><br>" _
               & "Veuillez ne pas en prendre compte.<br><br>" _
               & "Cordialement.<br><br>"
            '.Display
            .Send
         End With
         Set oMail = Nothing
      End If
   Next rng
End Sub

Bizz

Bonjour,

Essaye de mettre cette ligne :

Set oMail = oOutlook.CreateItem(0)

à l'intérieur de ta boucle FOR...next (au début bien sur)

Car tu crées bien ton oMail mais tu l'envoies donc tu n'es plus dans la même instance, il faut peut être re-créer ton mail à chaque destinataire.

Je pense que cela pourrait venir de là.

Bon dimanche

PS: Comme le fait Bizarre qui a répondu + vite

Bonjour Bizarre, ptipanda,

Effectivement, le souci venait de l'odre dans la boucle.

Correction faite avec le code de Bizarre et tout fonctionne correctement.

Merci à vous 2

Rechercher des sujets similaires à "envoi mail unique destinataires"