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

  • Initiateur de la discussion Initiateur de la discussion Sellig
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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
    Envoi de mails.xlsm
    53.9 KB · Affichages: 7
  • Fig1.PNG
    Fig1.PNG
    120.7 KB · Affichages: 8
  • Fig2.PNG
    Fig2.PNG
    240.4 KB · Affichages: 7
@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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
26
Affichages
1 K
Réponses
11
Affichages
738
Retour