Fichier Excel envoyer par Outlook

Résolu/Fermé
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 - Modifié le 15 févr. 2020 à 15:48
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 - 16 févr. 2020 à 19:05
Bonjour,

J'ai encore besoin de votre aide

J'ai une macro qui est pas tout a fait a point

Je veux envoyer mon classeur Excel par outlook a l'aide de ma macro a plusieurs destinataires en même temps.

Ma liste d'adresse mail est a l'onglet TABLES a la colonne P

Lorsque j’appuie sur le bouton pour lancer la macro, la fenêtre outlook apparait et seulement une adresse courriel est inclus dans les destinataires. En plus, une erreur dans le VBA en jaune
(voir photo)

voici mon code
Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail, RP
Dim destinataire As String
Dim contenu As String
Dim chemin As String

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)

ActiveWorkbook.Save ' sauvergarde d'abord le fichier

chemin = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name ' chemin fichier

'Texte du messge à adapter
contenu = "Bonjour,"
contenu = contenu & Chr(10) & Chr(13) ' saut de ligne
contenu = contenu & "Fichier MACHINERIE A Jour....."
contenu = contenu & Chr(10) & Chr(13)
contenu = contenu & "Cordialement"
contenu = contenu & Chr(10) & Chr(13)
contenu = contenu & "Signature"

For n = 2 To 13 ' Boucle sur les lignes des adresses
destinataire = Sheets("TABLES").Range("P" & n)
    With oBjMail
        .To = destinataire ' le destinataire</souligne>
        .Subject = "Fichier Excel"   ' l'objet du mail ' à modifier
        .Body = contenu 'le corps du mail ..son contenu
        .Attachments.Add chemin '"C:\Documents\MailAgents.xls" ' ou Nomfichier
        .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
        '.Send ' après les  essais enlever l'apostrophe devant cette ligne pour que les mails soient bien envoyés
    End With
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
Next
End Sub


EDIT : Ajout des balises de code
A voir également:

8 réponses

faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
15 févr. 2020 à 19:40
Bonjour Jordane45

merci pour le suivi.

Que veux tu dire par Ajout des balises de codes. je fais quoi par la suite ?

Je suis débutant coté VBA.

Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
15 févr. 2020 à 20:03
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
15 févr. 2020 à 20:12
Merci cs_Le Pivert

D'adapter ce code a mes besoins n'est pas évident pour moi.

En plus, j'aimerais choisir une autre adresse comme expéditeur que l'adresse par défaut qui m'est proposé dans outlook.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 févr. 2020 à 08:19
Pour envoyer à plusieurs destinataires il faut que les adresses soient séparées par un point virgule ;

Le lien que je t'ai fourni fait cela, il suffit de l'adapter à ton environnement comme ceci:

Dim iCounter As Integer
 Dim destinataire As String
   For iCounter = 1 To WorksheetFunction.CountA(Columns(16)) 'colonne P
           If destinataire = "" Then
               destinataire = Cells(iCounter, 16).Value 'colonne P
           Else
               destinataire = destinataire & ";" & Cells(iCounter + 1, 16).Value 'colonne P
           End If
       Next iCounter
       With oBjMail
        .To = destinataire ' le destinataire</souligne>
        .Subject = "Fichier Excel"   ' l'objet du mail ' à modifier
        .Body = contenu 'le corps du mail ..son contenu
        .Attachments.Add chemin '"C:\Documents\MailAgents.xls" ' ou Nomfichier
        .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
        '.Send ' après les  essais enlever l'apostrophe devant cette ligne pour que les mails soient bien envoyés
    End With


Voilà

@+ Le Pivert
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
16 févr. 2020 à 15:49
Bonjour et merci pour le suivi

voila ce que j'obtiens





Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 févr. 2020 à 16:47
Qu'obtiens-tu avec cela?

 For iCounter = 1 To WorksheetFunction.CountA(Columns(16)) 'colonne P
           If destinataire = "" Then
               destinataire = Cells(iCounter, 16).Value 'colonne P
           Else
               destinataire = destinataire & ";" & Cells(iCounter + 1, 16).Value 'colonne P
           End If
       Next iCounter
MsgBox destinataire
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
16 févr. 2020 à 16:49
Meme chose, ca fonctionne pas

puis je t'envoyer en privé mon fichier ?

trop de données personelles y sont incluses

Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 févr. 2020 à 16:56
Si cela ne fonctionne pas c'est que tes données ne sont pas là. Il faut te mettre sur la feuille qui contient les données avant de lancer la macro!

mettre cela en début de macro:

Sheets("TABLES").Select


Voir ceci:

https://www.tutoderien.com/envoyer-un-mail-outlook-avec-excel-vba/

c'est une autre manière de procéder
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
16 févr. 2020 à 17:10
merci pour le retour

voici ce que j'obtiens

J'abandonne



Martin
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 févr. 2020 à 17:46
Ce que tu montres est exactement ce que tu as montré dans ta demande!!!!!!!

Il faut mettre ceci:

Dim iCounter As Integer
 Dim destinataire As String
Sheets("TABLES").Select
 For iCounter = 1 To WorksheetFunction.CountA(Columns(16)) 'colonne P
           If destinataire = "" Then
               destinataire = Cells(iCounter, 16).Value 'colonne P
           Else
               destinataire = destinataire & ";" & Cells(iCounter + 1, 16).Value 'colonne P
           End If
       Next iCounter
       With oBjMail
        .To = destinataire ' le destinataire</souligne>
        .Subject = "Fichier Excel"   ' l'objet du mail ' à modifier
        .Body = contenu 'le corps du mail ..son contenu
        .Attachments.Add chemin '"C:\Documents\MailAgents.xls" ' ou Nomfichier
        .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
        '.Send ' après les  essais enlever l'apostrophe devant cette ligne pour que les mails soient bien envoyés
    End With


@+ Le Pivert
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
16 févr. 2020 à 18:44
Merci

même si je mets ce code, le même message apparait



Martin
0
faisdlair Messages postés 171 Date d'inscription vendredi 19 janvier 2018 Statut Membre Dernière intervention 31 décembre 2023 6
16 févr. 2020 à 19:05
Bonjour

J'ai trouvé sur un forum

ça fonctionne bien maintenant.

Merci pour ton aide

Martin
0