E-mail automatique à partir de different fichiers

maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
 Stif -
Bonjour à tous!

Je suis débutant en programmation, et je suis à la recherche d'une macro qui pourrait générer et envoyer automatiquement un fichier reprenant toutes les informations du client.

En colA j'ai la référence fournisseur, en colB l'adresse e-mail fournisseur, en colC la référence produit, en colD la description produit.

Ex: ColA ColB ColC ColD
JVF Jean@voila.fr 123.4567.890 Voiture à eau
JVF Jean@voila.fr 234.5678.901 Voiture à essence
JVF Jean@voila.fr 345.6789.012 Voiture à diesel
ATV Antoine@voila.fr 345.9872.876 Camion
TYD Thibaut@voila.fr 767.8542.134 Tracteur
TYD Thibaut@voila.fr 999.1312.765 Grue

J'aimerai pouvoir envoyer par e-mail un fichier par client, regroupant toutes leurs informations.

Je suis conscient que c'est un long et fastidieux travail, c'est pour cela que je vous remercie d'avance :)

2 réponses

maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé une grande partie de la réponse à ma question !

J'ai fait un Pivot Table avec les données que j'avais pour après spliter mon classeur en une Feuille par client.

Le seul problème qui se pose à moi maintenant c'est que je n'arrive pas à insérer un sujet et un corps à mon e-mail, ce qui fait très peu professionel...
Il y a bien "Subject_Line" mais rien ne change peu importe le nom que je mets...

Voici ma macro pour celui ou celle qui aura le courage de m'aider :)

Sub Mail_every_Worksheet()
Dim sh As Worksheet
Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If sh.Range("b1").Value Like "*@*" Then
sh.Copy
ActiveWorkbook.SaveAs "Sheet " & sh.Name & " of " _
& ThisWorkbook.Name & ".xls"
ActiveWorkbook.SendMail ActiveSheet.Range("b1").Value, _
"Subject_line"
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ActiveWorkbook.Close False
End If
Next sh
Application.ScreenUpdating = True
End Sub
0
Stif
 
Bonjour,
Essayez ça et dites moi si ça vous convient :

Sub mail()
Dim OutApp As Object
Dim OutMail As Object
Dim mailclient As String
Dim I As Variant


For I = 1 To Range("B" & Rows.Count).End(xlUp).Row
If Cells(I, 2) <> "" Then
mailclient = Cells(I, 2).Value

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = mailclient
.Subject = "Sujet du mail"

.Body = Cells(I, 1).Value & " " & Cells(I, 3).Value & " " & Cells(I, 4).Value & " "
.Send
End With
Set OutApp = Nothing
End If
Next I
End Sub

EDIT : pour attacher un fichier il faut rajouter la ligne:
.Attachments.Add "C:\Users\..." avant la ligne .Send
0
maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton travail et ta réponse Stif !

Je vois dans ton code que les données Excel sont dans le corps du texte. Je souhaitais que le mail parte avec un sujet et un corps de texte personnalisé ET le fichier excel :)

Avec le code que j'ai trouvé, je peux envoyer uniquement la feuille par mail au client avec ses informations (et ça marche nikel !), du coup je souhaitais savoir si on ne pouvait pas "agrémenter" le code de depart.

Merci encore
0
maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Autant pour moi !

Ma macro envoyait le mail, mais les clients pouvaient changer le filtre pour voir les autres données étant donné que c'était une Pivot Table...

Je repars donc de 0.

Je vais essayer de trouver 2 macros différentes, une pour copier les informations clients dans un template, et la seconde pour envoyer tous ces fichiers aux clients.

Si quelqu'un à plus de renseignements pour moi, je suis preneur !!



Merci!
0
Stif > maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
Si tu pouvais envoyer un exemple de ton fichier à envoyer par mail à chaque client avec les données les concernants sur www.cjoint.com ce serait plus simple pour te préparer quelques lignes.
Si les données sont confidentielles fais juste quelques exemples l'important est la trame de base
0
maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ton temps Stif ! :)

Voici les 2 fichiers. Il ya le template que j'aimerais envoyer aux clients, et la base de donnée avec les colonnes que j'utilise.

http://www.cjoint.com/c/FGnlTLTKq8z
http://www.cjoint.com/c/FGnlUdgqe2z

Pour récap, (et surtout être sur de m'être fait bien comprendre) je souhaite que chaque clients recoivent les données qui leur sont associées par email, dans un template excel qui leur est propre.


Merci beaucoup,
0
Stif > maximilieng Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de voir tes fichiers.
Je ne suis pas certain d'avoir bien compris. Tu voudrais que les données de chaque destinataire du fichier Exemple2send soient récupérées et mises dans le fichier template2send et ensuite envoyer un mail avec un texte + en pièce jointe le fichier template2send complété?

Si oui dans quelle colonne de template2send veux tu que les données soient copiées?

Si c'est bien ça que tu veux c'est facilement faisable
0