Envoi de mails par macro

Barbefeuillue

XLDnaute Nouveau
Bonsoir à toutes et tous,

me revoici sur le forum pour vous demander de l'aide car malgré mes recherches je n'ai pas trouvé mon bonheur.

j'ai créé dans un classeur excel une macro qui me permet d'envoyer des mails en gros, ce qui est très pratique quand j'ai plusieurs dizaines de mails à envoyer!

le corps du message est composé de parties invariables et de références au contenu de certaines cellules.

j'aimerais pouvoir si cela est possible :

1. modifier la police d'une partie du message (la dernière ligne pour l'écrire en plus petit - afin de passer une information mais de sorte que visuellement cela paraisse moins important)

2. que ma macro parcours les lignes du fichier et n'envoie un mail que si la colonne destinataire est renseignée. Pour le moment je fais remonter les lignes et j'adapte la macro...


par avance merci,
 

Pièces jointes

  • Classeur1.xls
    26 KB · Affichages: 33
  • Classeur1.xls
    26 KB · Affichages: 35
  • Classeur1.xls
    26 KB · Affichages: 42

Hulk

XLDnaute Barbatruc
Re : Envoi de mails par macro

Bonsoir Barbefeuillue, Forum,

Vois le fichier joint et essaie d'adapter à ton cas.

Ça marche avec Outlook.

Merci à l'auteur !
Franchement et malheureusement, je ne me souviens pas qui me l'avait passé...
J'espère qu'il se reconnaitra et qu'il ne m'en voudra pas.

Sur ce, bonne nuit à tous !
 

Pièces jointes

  • Mail avec Format.xlsm
    23.7 KB · Affichages: 47

Barbefeuillue

XLDnaute Nouveau
Re : Envoi de mails par macro

bonjour bonjour et merci pour votre réponse,

hélas impossible d'ouvrir le fichier... enfin l'ouvrir si, mais quelque soit la version d'excel erreur et les données sont corrompues.

pourriez-vous réessayer?

par avance merci,
 

Hulk

XLDnaute Barbatruc
Re : Envoi de mails par macro

Hello,

C'est le fichier que j'ai joins que vous n'arrivez pas à ouvrir ?

Bref voici une version 2003 peut-être que...

Si non peut-être que c'est ça, dans l'éditeur VBA, dans Outils/Références..., il faut côcher
la référence Microsoft Outlook xx Object Library.

J'espère que ça jouera.
 

Pièces jointes

  • Mail avec Format.xls
    43 KB · Affichages: 41
  • Mail avec Format.xls
    43 KB · Affichages: 36
  • Mail avec Format.xls
    43 KB · Affichages: 41

Barbefeuillue

XLDnaute Nouveau
Re : Envoi de mails par macro

Effectivement avec le format html pas de souci j'ai pu adapter facilement le corps du message!

Par contre je n'arrive pas à créer une boucle satisfaisante... Pour le moment je marche avec :


Code:
Private Sub CommandButton2_Click()

    For i = 5 To 10

    Dim NomDestinataire
    Dim NomClient
    Dim PieceJointe

    Set oOutlook = CreateObject("Outlook.Application")
    Set oNewMail = oOutlook.CreateItem(olMailItem)
    
    NomDestinataire = Workbooks("monclasseur.xls").Sheets("Feuil1").Cells(i, 23).Value
    NomClient = Workbooks("monclasseur.xls").Sheets("Feuil1").Cells(i, 6).Value
    StatutCommande = Workbooks("monclasseur.xls").Sheets("Feuil1").Cells(i, 2).Value
    
  
        With oNewMail
                 
        .Recipients.Add NomDestinataire
        .Subject = "monclasseur " & Format(Date, "ddmmyyyy ") & NomClient
        .HTMLBody = "<HTML><body>blablabla<p>" & "Client(e) :  " & NomClient & _
          " <FONTSIZE=-3>blablablabla</font><p>"       & _
          "<FONT SIZE=-3>Ne pas répondre à cet email il s'agit d'un traitement automatique. </font></body> _                     <HTML>"
          
        .Attachments.Add "C:\NEPASTOUCHERSVP\type de courriers.pdf"
        .send
        End With
    
 Next i
    
End Sub

Ce qui marche bien mais qui est bien galère... J'ai tenté des conditions du genre de ci-dessous mais ça ne marche pas...

Code:
' si plus de ligne renseignée on arrête 

If Workbooks("monclasseur.xls").Sheets("Feuil1").Cells(i, 1).Value = "" Then exit sub End if


' Pour vérifier qu'il y a bien un mail à envoyer si un mail est renseigné sinon on passe a la ligne suivante

If Workbooks("monclasseur.xls").Sheets("Feuil1").Cells(i, 24).Value <> "" Then ... et a la fin i = i + 1

Else i = i + 1

End if

Si quelqu'un peut m'aider pour les conditions / boucles parce que je tourne en rond, merci d'avance!!
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 762
Membres
103 661
dernier inscrit
fcleves