Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Envoyer une feuille excel en pièce jointe avec destinataires différents

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

B

bella_mia

Guest
Bonjour,
je souhaite envoyer une feuille excel à la fois par courriel en pièce jointe en faisant référence à une adresse différente dans chaque feuille. (voir exemple ci-joint).

J'ai tenté quelques macros sans résultat concluant.😱
J'ai besoin de votre aide, merci d'avance.
Manon
 

Pièces jointes

Dernière modification par un modérateur:
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Bonsoir bella_mia, gilbert_RGI,

Tu peux voir avec ce site j'envoi tous mas mails par excel avec CDO.

SI tu as besoin, n'hésites pas à demander.

A+
Yaloo
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Re

VB:
Sub Mail_Sheets()
'Working in 97-2010
    Dim wb As Workbook
    Dim Shname As Variant
    Dim Addr As Variant
    Dim N As Integer
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim I As Long

    Shname = Array("P-Jean-Jacques", "JoeBloe")
    adr1 = Sheets("P-Jean-Jacques").Cells(12, 1)
    adr2 = Sheets("JoeBloe").Cells(12, 1)
    Addr = Array(adr1, adr2)

    If Val(Application.Version) >= 12 Then
        'You run Excel 2007-2010
        FileExtStr = ".xlsm": FileFormatNum = 52
    Else
        'You run Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    End If

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    TempFilePath = Environ$("temp") & "\"

    'Create the new workbooks/Mail it/Delete it
    For N = LBound(Shname) To UBound(Shname)

        TempFileName = "Sheet " & Shname(N) & " " & Format(Now, "dd-mmm-yy h-mm-ss")

        ThisWorkbook.Sheets(Shname(N)).Copy
        Set wb = ActiveWorkbook

        With wb
            .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormatNum
            On Error Resume Next
            For I = 1 To 3
                .SendMail Addr(N), _
                          "This is the Subject line"
                If Err.Number = 0 Then Exit For
            Next I
            On Error GoTo 0
            .Close SaveChanges:=False
        End With

        'Delete the file you have send
        Kill TempFilePath & TempFileName & FileExtStr

    Next N

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Avec un truc comme ça peut être !!!

Yaloo
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Bonjour Gilbert_RGI
ça super bien fonctionné sauf qu'il envoit 2 fois le messages en dirait... il me donne 2 fois le message qu'un logiciel de messagerie est entrain d'envoyer un message...
est-ce normal?
Manon
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

il envoit les deux feuilles l'une derrière l'autre

modifications du programme

Code:
Sub envoiMailEtFeuilleActive()
    Application.ScreenUpdating = False
    For sh = 1 To Sheets.Count
        Sheets(sh).Select
        ActiveSheet.Copy    ' crée une copie de la feuille active
        ActiveWorkbook.SendMail Recipients:=ActiveSheet.Range("a12").Value, Subject:="envoi du :" & Date & Time    'envoi Mail
        Application.DisplayAlerts = False
        ActiveWorkbook.Close    ' supprime le classeur créé après l'envoi
        Application.DisplayAlerts = True
    Next
    Application.ScreenUpdating = True
End Sub
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Rebonjour,
suite à la copie du nouveau code, excel gèle... il l'envoie pareille par contre sauf que je ne peux pas passer à l'onglet suivant je dois faire un redémarrage du logiciel...
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Re,

As tu essayé mon fichier ?

Tu n'as pas de message à valider avec CDO.

Si tu as un bug, tu peux voir pour rentrer ton FAI au niveau SMTP, voir dans la macro c'est indiqué.

Je te mets un nouveau fichier, j'y ai apporté qq modifications.

A+
 

Pièces jointes

Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

oui j'ai réessayé et maintenant il me dit qu'il y a une panne de messagerie et je dois quitter excel 🙁(( je ne suis même plus capable de l'exécuter comme hier au complet, ça ne passe... je me questionne à savoir pourquoi ça marchait hier et plus aujourd'hui?...
J'attends de tes nouvelles.
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Bonsoir bella_mia, le fil,

Qu'as tu réessayé, le code du post #5 ou le fichier du post #10 ?
As tu changé qq chose entre temps ? Est-ce sur le même PC ?
Avais-tu modifié le code en mettant smtp."et le nom de ton FAI" ?

A te relire
Yaloo
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

🙂 bcp de questions!
j'ai essayé les 2 post
je n'ai rien changé entre temps
et non je n'ai pas modifié le code car je suis un peu perdu... je connais que très peu VBA...
Est-ce je devrais repartir de mon document du départ et copier la macro dedans?
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

Re,

Oui il faut copier le code dans ton document d'origine, sauf si ton exemple est très proche de ton fichier final. Dans ce cas là tu peux faire l'inverse copier tes données dans le fichier qui contient la macro.
Une fois, le fichier avec la macro. Tu fais un test. Si ça plante il faut me dire où. Le mieux est de faire du pas à pas, lorsque tu es dans Visual Basic Editor, tu te mets sur la macro et tu fais F8, à chaque fois que tu appuis, ça avance d'une ligne. On verra comme ça d'où ça viens.

A+
 
Re : Envoyer une feuille excel en pièce jointe avec destinataires différents

j'ai copier ton dernier code celui que tu m'as copier car il envoyait 2 feuilles (une à ton adresse aussi)
j'ai fait pas à pas et voici là où il bogue:
ActiveWorkbook.SendMail Recipients:=ActiveSheet.Range("a12").Value, Subject:="envoi du :" & Date & Time 'envoi Mail
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…