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

bella_mia

XLDnaute Nouveau
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.:eek:
J'ai besoin de votre aide, merci d'avance.
Manon
 

Pièces jointes

  • ProblemeMacro.xls
    292 KB · Affichages: 213
  • ProblemeMacro.xls
    292 KB · Affichages: 247
  • ProblemeMacro.xls
    292 KB · Affichages: 244
Dernière édition:

Yaloo

XLDnaute Barbatruc
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
 

bella_mia

XLDnaute Nouveau
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
 

gilbert_RGI

XLDnaute Barbatruc
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
 

bella_mia

XLDnaute Nouveau
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...
 

Yaloo

XLDnaute Barbatruc
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

  • ProblemeMacro.xls
    41 KB · Affichages: 257
  • ProblemeMacro.xls
    41 KB · Affichages: 280
  • ProblemeMacro.xls
    41 KB · Affichages: 310

bella_mia

XLDnaute Nouveau
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.
 

Yaloo

XLDnaute Barbatruc
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
 

bella_mia

XLDnaute Nouveau
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?
 

Yaloo

XLDnaute Barbatruc
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+
 

bella_mia

XLDnaute Nouveau
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
 

Discussions similaires