[VBA] macro excel pour envoyer plusieurs fichiers

macro excel pour envoyer plusieurs fichiers [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 22-03-2010 à 22:20:05    

Salut à tous
 
j'en appelle aux experts d'excel!
 
Voila, j'ai dans un même répertoire 4 classeurs. Je cherche une macro pour envoyer chacun de ces classeurs à 4 destinataires différents dont les noms sont connus.
Mes Classeurs ont le nom d'une ville (PARIS.xls, BORDEAUX.xls, NANTES.xls et MARSEILLE.xls).
 
J'ai une macro déjà opérationnelle mais prévue pour n'envoyer qu'un seul fichier à un seul destinataire.
J'ai voulu mettre à la suite 2 fois la même macro, adaptée bien sur à un autre nom de classeur et à un autre destinataire mais ça plante.
 
Je ne vois pas trop comment enchainer la macro pour m'envoyer ces 4 fichiers aux 4 bon destinataires.
 
Voici ma macro qui fonctionne.
 

Citation :

Sub envoimail()
'test sur agence d'Auxerre
 
Workbooks.Open Filename:= _
"C:\Mes Documents\FD\PARIS.xls"
 
Dim Outlook As Object
Dim Mail As Object
Dim Dest As String
Dim Objet As String
Dim Corps As String
 
Dest = "Xxxx@ddsf.com" 'adresse du destinataire
Objet = "Rapport d'appels du mois d'"
'Exemple de corps de texte avec texte et sauts de ligne
Corps = "Bonjour, " & _
vbCrLf & vbCrLf & _
"Ci-joint le fichiers des appels du mois passé pour votre agence." & _
vbCrLf & vbCrLf & _
"Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
vbCrLf & vbCrLf & _
"Cordialement." & _
vbCrLf & vbCrLf
 
 
Set Outlook = CreateObject("Outlook.Application" )
Set Mail = Outlook.CreateItem(0)
 
With Mail
.to = Dest
.CC = ""
.BCC = ""
.Subject = Objet
.Body = Corps
.Attachments.Add ActiveWorkbook.FullName
.Display
ActiveWindow.Close
End With
End Sub


 
Je ne sais pas enchainer cette macro sur plusieurs fichiers à la suite. Y a t'il une formule pour le faire?
 
qu'en pensez vous??
 
Merci d'avance pour votre aide


---------------
mon feed-back: http://forum.hardware.fr/hfr/Achat [...] 4641_1.htm
Reply

Marsh Posté le 22-03-2010 à 22:20:05   

Reply

Marsh Posté le 23-03-2010 à 14:01:08    

Fait vite fait sans tester, mais une solution du genre devrait marcher:

 

Sub envoimail()
'test sur plusieurs agences
 
Dim Outlook As Object
Dim Mail As Object
Dim Objet As String
Dim Corps As String
Dim fichiers, dest As Variant
Dim i As Integer
Dim path As String

 

path = "C:\Mes Documents\FD\"
fichiers = Array("PARIS.xls", "BORDEAUX.xls", "NANTES.xls", "MARSEILLE.xls" )
dest = Array("Xxxx@ddsf.com", "yyyy@ddsf.com", "zzzz@ddsf.com", "wwww@ddsf.com" )
 
Objet = "Rapport d'appels du mois d'"
'Exemple de corps de texte avec texte et sauts de ligne
Corps = "Bonjour, " & _
vbCrLf & vbCrLf & _
"Ci-joint le fichiers des appels du mois passé pour votre agence." & _
vbCrLf & vbCrLf & _
"Nous restons bien entendu à votre disposition pour tout renseignement complémentaire." & _
vbCrLf & vbCrLf & _
"Cordialement." & _
vbCrLf & vbCrLf
 
 
Set Outlook = CreateObject("Outlook.Application" )

 

For i = LBound(fichiers) To UBound(fichiers)
    Set Mail = Outlook.CreateItem(0)
 
    With Mail
        .To = dest(i)
        .CC = ""
        .BCC = ""
        .Subject = Objet
        .Body = Corps
        .Attachments.Add (path & fichiers(i))
        .Display
    End With
Next i

 

End Sub



Message édité par Cardelitre le 23-03-2010 à 14:01:52

---------------
Intra-Science  -  To thine own self be true
Reply

Marsh Posté le 24-03-2010 à 09:12:00    

merci pour l'aide!!!
 
 
 
alors ta macro marche du tonnere!!!! Mais elle provoque en fin d'exécution une erreur sur la ligne
.Attachments.Add (path & fichiers(i))
 
Tu vois d'où ça peut venir?
 

Message cité 1 fois
Message édité par superdeug2 le 24-03-2010 à 09:36:41

---------------
mon feed-back: http://forum.hardware.fr/hfr/Achat [...] 4641_1.htm
Reply

Marsh Posté le 24-03-2010 à 21:16:55    

Sans le message d'erreur, c'est difficile de deviner...


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 25-03-2010 à 14:21:24    

superdeug2 a écrit :

merci pour l'aide!!!
 
 
 
alors ta macro marche du tonnere!!!! Mais elle provoque en fin d'exécution une erreur sur la ligne
.Attachments.Add (path & fichiers(i))
 
Tu vois d'où ça peut venir?
 


Sans voir l'erreur c'est difficile à dire.
 
Mais il y a de bonne chances pour qu'il n'y ait pas le bon nom de fichier au bon endroit.
 

path & fichiers(i)

 
est sensé donner l'adresse exacte et le nom du fichier à attacher.
 
Plus haut on attribue le chemin du dossier où se trouvent les fichiers à la variable path, soit ici selon ton exemple dans le dossier  
"C:\Mes Documents\FD\"
Vérifie que les fichiers se trouvent bien à cette adresse précisément.
 
Ensuite les noms des fichiers doivent impérativement correspondre à ce qui est entré dans la variable fichier, soit dans ton exemple: "PARIS.xls", "BORDEAUX.xls", etc. Vérifie bien que les fichiers se trouvant dans le bon dossier se nomment exactement comme ça, avec la bonne extention (.xls et pas .xlsx ou autre chose).


---------------
Intra-Science  -  To thine own self be true
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed