Fichier Excel envoyer par Outlook

Résolu
faisdlair Messages postés 175 Statut Membre -  
faisdlair Messages postés 175 Statut Membre -
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 175 Statut Membre 6
 
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
faisdlair Messages postés 175 Statut Membre 6
 
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 8437 Statut Contributeur 729
 
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 175 Statut Membre 6
 
Bonjour et merci pour le suivi

voila ce que j'obtiens





Merci
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
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 175 Statut Membre 6
 
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 8437 Statut Contributeur 729
 
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 175 Statut Membre 6
 
merci pour le retour

voici ce que j'obtiens

J'abandonne



Martin
0
cs_Le Pivert Messages postés 8437 Statut Contributeur 729
 
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 175 Statut Membre 6
 
Merci

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



Martin
0
faisdlair Messages postés 175 Statut Membre 6
 
Bonjour

J'ai trouvé sur un forum

ça fonctionne bien maintenant.

Merci pour ton aide

Martin
0