Créer un fichier et l'envoyer en vba

Créer un fichier et l'envoyer en vba - VB/VBA/VBS - Programmation

Marsh Posté le 12-09-2013 à 22:13:49    

Bonjour,
 
Je suis débutante en VBA. Et j'arrive pas résoudre ce problème.
J'ai une base de données dans un fichier Excel. Chaque ligne de cette base de données est différente et elle est attribuée à une adresse mail.
J'aimerais créer pour chaque ligne un nouveau fichier Excel avec ces valeurs et y créer un camembert correspondant aux valeurs copiés puis envoyer ce fichier au mail correspondant.
 
 
Voila ce que j'ai essayé. J'ai récupéré des bouts de codes et j'ai utilisé l'enregistreur de macro.  
Ce code me permet de créer à chaque fois un nouveau fichier, il recopie les valeurs d'une ligne et créer le camembert correspondant et ainsi de suite pour chaque ligne. Or je ne sais pas comment envoyer ce fichier créée au mail correspondant.  
J'espère que je suis claire.
 

Code :
  1. Sub macro()
  2. Dim graphique As ChartObject
  3. Application.ScreenUpdating = False
  4. For i = 2 To 3
  5. ThisWorkbook.Sheets("Base de données" ).Range("A" & i & ":E" & i).Copy
  6. 'créer un nouveau classeur et y coller les données
  7. Set nouv = Workbooks.Add
  8. Set pg = nouv.Sheets(1)
  9. pg.Paste
  10. pg.Cells(1).PasteSpecial Paste:=xlValues
  11. ActiveSheet.Shapes.AddChart.Select
  12. ActiveChart.ChartType = xl3DPie
  13. ActiveChart.SetSourceData Source:=Range("C1:E2" )
  14. ActiveChart.SeriesCollection(1).XValues = "='Base de données'!$C$1:$E$1"
  15.    
  16. ActiveChart.SeriesCollection(1).Name = "Répartition du temps"
  17. ActiveChart.HasLegend = True
  18. ActiveChart.HasTitle = True
  19. ActiveChart.ApplyDataLabels AutoText:=True, LegendKey:=False, _
  20. HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=False, _
  21. ShowValue:=False, ShowPercentage:=True, ShowBubbleSize:=False
  22. 'faire le ménage
  23. Set pg = Nothing
  24. Set gr = Nothing
  25. Set nouv = Nothing
  26. Application.CutCopyMode = False
  27. Next i
  28. End Sub


   
Je connais le code pour envoyer un fichier se trouvant sur mon ordinateur. Mais je ne sais pas comment y insérer ces nouveaux fichiers crées.  
 

Code :
  1. Sub Envoyer_Mail_Outlook()
  2. Dim ObjOutlook As New Outlook.Application
  3. Dim oBjMail
  4. Dim Nom_Fichier As String
  5. Dim adresse As String
  6. ' adresses emails
  7. For i = 2 To 3
  8. 'pour chaque adresse on démarre l’opération
  9. adresse = Range("B" & i)
  10.     Set ObjOutlook = New Outlook.Application
  11.     Set oBjMail = ObjOutlook.CreateItem(olMailItem)
  12.    
  13.    Nom_Fichier = "C:\Users\"
  14.     If Nom_Fichier = "" Then Exit Sub
  15. '---------------------------------------------------------
  16.      With oBjMail
  17.     ' l'objet du mail
  18.        .Subject = "Réponses questionnaire"
  19.     'le corps du mail ..son contenu
  20.        .Body = "Ci-joint les réponses aux questionnaires"
  21.        .Attachments.Add Nom_Fichier
  22.        .To = adresse
  23.     '   Ici on peut supprimer pour l'envoyer sans vérification
  24.        .Display
  25.        .Send
  26.     End With
  27.    
  28.     Set oBjMail = Nothing
  29.     Set ObjOutlook = Nothing
  30.     Next i
  31. End Sub

 
 
 
Je vous remercie pour votre aide ! :)

Reply

Marsh Posté le 12-09-2013 à 22:13:49   

Reply

Sujets relatifs:

Leave a Replay

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