XL 2013 Insérer une plage de cellules dans le corps d'un mail outlook

  • Initiateur de la discussion Initiateur de la discussion ZEUGMA2010
  • 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 !

ZEUGMA2010

XLDnaute Nouveau
Bonjour,
Débutant en VBA, je n'arrive pas à finaliser mon projet.
Je souhaite envoyer, individuellement, un message OUTLOOK (Sheets "MESSAGE" Plage D2:K9) aux correspondants dont la case est cochée (Sheets "MAIRIES").
Ma conditionnelle "si case cochée alors" ne fonctionne pas.
Je souhaiterai aussi pouvoir ajouter au mail une adresse mail en Cc.
Merci.
 

Pièces jointes

BONJOUR ZEUGMA2010,

J'ai revu la code du lancement des mails.

VB:
Sub MAIL()
    '------------------------------------------------------------------------------
    '                                                                  ESSAI1 Macro
    '------------------------------------------------------------------------------
    Application.ScreenUpdating = False          ' accélérateur Macro
    
    '--------------------------------------------------------------
    '                                     Déclaration des variables
    '--------------------------------------------------------------
    Dim Chemin
    Dim DerniereLigne
    Dim i As Integer
    Dim NomFichier
    Dim DerniereLigneMessage

    Chemin = Application.ActiveWorkbook.Path     'C:\Users\Phuy031\Desktop\ELECTIONS NEW"
    
    
    With Sheets("MAIRIES")
        DerniereLigne = .Cells(Rows.Count, 3).End(xlUp).Row
        For i = 2 To DerniereLigne
            xMailTo = .Range("I" & i).Value
            xMailCc = .Range("J" & i).Value
            If .Cells(i, 1).Value = True Then
                
                'Sheets("MESSAGE").Activate
                
                With Sheets("MESSAGE")
                    
                    NomFichier = .Range("B5").Value
                    xSujet = .Range("B2").Value
                    DerniereLigneMessage = .Cells(Rows.Count, 4).End(xlUp).Row
                    '.Range("D2:D" & DerniereLigneMessage).Select  ' la plage de cellules à envoyer
                    .Select
                    ActiveWorkbook.EnvelopeVisible = True
                    With .MailEnvelope
                        .Introduction = "bonjour, ( " & Sheets("MAIRIES").Range("K" & i).Value & " )"
                        .Item.Subject = xSujet
                        .Item.To = xMailTo
                        .Item.CC = xMailCc
                        '.Item.Attachments.Add ActiveWorkbook.Path & "\" & NomFichier & ".PDF"
                        .Item.Send
                    End With
                End With
            End If
        '-----------------------------------------------------------------------------------------------------------
        Next i
    End With
    
    Range("B3").Select
    MsgBox "Message(s) transmis", , "Je vous informe..."
    
    '
End Sub

Cela devrait fonctionner
Cordialement
Lolote83
 
BONJOUR ZEUGMA2010,

J'ai revu la code du lancement des mails.

VB:
Sub MAIL()
    '------------------------------------------------------------------------------
    '                                                                  ESSAI1 Macro
    '------------------------------------------------------------------------------
    Application.ScreenUpdating = False          ' accélérateur Macro
   
    '--------------------------------------------------------------
    '                                     Déclaration des variables
    '--------------------------------------------------------------
    Dim Chemin
    Dim DerniereLigne
    Dim i As Integer
    Dim NomFichier
    Dim DerniereLigneMessage

    Chemin = Application.ActiveWorkbook.Path     'C:\Users\Phuy031\Desktop\ELECTIONS NEW"
   
   
    With Sheets("MAIRIES")
        DerniereLigne = .Cells(Rows.Count, 3).End(xlUp).Row
        For i = 2 To DerniereLigne
            xMailTo = .Range("I" & i).Value
            xMailCc = .Range("J" & i).Value
            If .Cells(i, 1).Value = True Then
               
                'Sheets("MESSAGE").Activate
               
                With Sheets("MESSAGE")
                   
                    NomFichier = .Range("B5").Value
                    xSujet = .Range("B2").Value
                    DerniereLigneMessage = .Cells(Rows.Count, 4).End(xlUp).Row
                    '.Range("D2:D" & DerniereLigneMessage).Select  ' la plage de cellules à envoyer
                    .Select
                    ActiveWorkbook.EnvelopeVisible = True
                    With .MailEnvelope
                        .Introduction = "bonjour, ( " & Sheets("MAIRIES").Range("K" & i).Value & " )"
                        .Item.Subject = xSujet
                        .Item.To = xMailTo
                        .Item.CC = xMailCc
                        '.Item.Attachments.Add ActiveWorkbook.Path & "\" & NomFichier & ".PDF"
                        .Item.Send
                    End With
                End With
            End If
        '-----------------------------------------------------------------------------------------------------------
        Next i
    End With
   
    Range("B3").Select
    MsgBox "Message(s) transmis", , "Je vous informe..."
   
    '
End Sub

Cela devrait fonctionner
Cordialement
Lolote83
Bonjour Lolote83,
Impeccable, merci pour cette correction qui me permettra de travailler plus efficacement.
J'étais vraiment perdu dans mes recherches sur le Net.
Cordialement.
 
- 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

Retour