XL 2019 Envoyer mails, n’envoie pas toutes les lignes

Sellig

XLDnaute Junior
Bonjour,

Est-ce que quelqu’un pourrait m’aider à résoudre mon problème sur le tableau joint ?

Lorsque je clique sur ‘’envoyer’’ uniquement les 3 premières lignes sont envoyées, alors que j’ai 5 adresses mails. Et pourtant la ligne « To last_row » est bien présente.

Évidement, j’ai besoin des 2 lignes vides au dessus, Lignes 1 et 2.

Merci par avance pour votre aide.

Cordialement
 

Pièces jointes

  • Envoi de mails.xlsm
    29.6 KB · Affichages: 5
Solution
@Sellig

Je te propose ceci :

VB:
Option Explicit

Sub Envoi_mails()
Dim Ws As Worksheet, OutApp As Object, OutMail As Object, DerLig&, i&

Set Ws = Worksheets("Envoi mails")
DerLig = Ws.Range("A" & Rows.Count).End(xlUp).Row

For i = 4 To DerLig
    If Ws.Range("H" & i).Value <> "NON" Then
        On Error Resume Next
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Ws.Range("A" & i).Value
            .CC = Ws.Range("B" & i).Value
            .BCC = Ws.Range("C" & i).Value
            .Subject = Ws.Range("D" & i).Value
            .Body = Ws.Range("E" & i).Value
            
            If Ws.Range("F" & i).Value <> "" Then...

Sellig

XLDnaute Junior
Et tu l'as fait ?

Quel résultat ?

Montre les copies d'écran de ce que tu as fait avec le résultat !
Le résultat est qu’il envoie bien la ou les lignes prévue (Fig1) mais également toutes les autres sans adresses mail (Fig2)

Le mieux serait que vous testiez mon fichier joint.
 

Pièces jointes

  • Envoi de mails.xlsm
    53.9 KB · Affichages: 7
  • Fig1.PNG
    Fig1.PNG
    120.7 KB · Affichages: 7
  • Fig2.PNG
    Fig2.PNG
    240.4 KB · Affichages: 5

Phil69970

XLDnaute Barbatruc
@Sellig

Je te propose ceci :

VB:
Option Explicit

Sub Envoi_mails()
Dim Ws As Worksheet, OutApp As Object, OutMail As Object, DerLig&, i&

Set Ws = Worksheets("Envoi mails")
DerLig = Ws.Range("A" & Rows.Count).End(xlUp).Row

For i = 4 To DerLig
    If Ws.Range("H" & i).Value <> "NON" Then
        On Error Resume Next
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Ws.Range("A" & i).Value
            .CC = Ws.Range("B" & i).Value
            .BCC = Ws.Range("C" & i).Value
            .Subject = Ws.Range("D" & i).Value
            .Body = Ws.Range("E" & i).Value
            
            If Ws.Range("F" & i).Value <> "" Then
                .Attachments.Add Ws.Range("F" & i).Value
            End If
            If Ws.Range("G" & i).Value <> "" Then
                .Attachments.Add Ws.Range("G" & i).Value
            End If
            
            .Send
        End With
    End If
Next i

MsgBox "Messages Envoyés"
Set OutMail = Nothing: Set OutApp = Nothing
End Sub

Merci de ton retour
 

Discussions similaires

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri