VBA - Envoi mail automatique

meli

XLDnaute Nouveau
Bonjour,

Je planche en vain sur une macro un peu spécifique qui dépasse de loin le champ de mes connaissances VBA et je viens appeler à l’aide. J’ai reproduit ci-dessous un exemple du fichier sur lequel je dois travailler avec noms et commandes fictives.

Voilà je vous explique l’idée :
En fait, j’aimerais faire en sorte que lorsque l’onglet commentaire est complété, cela envoie automatiquement un mail type au client.
Donc ça donnerait quelque chose comme ça :
« Bonjour,
Nous vous confirmons votre commande n° XXXXXX (à trouver dans la colonne E en fonction du nom du client).

Merci pour votre confiance,

Meilleures Salutations. »

Est-ce que c’est seulement réalisable ? :confused:

Un grand merci d’avance à tous ceux qui se pencheront sur mon problème :)
 

Pièces jointes

  • draft.xls
    19.5 KB · Affichages: 67
Dernière édition:

Matheop

XLDnaute Occasionnel
Re : VBA - Envoi mail automatique

Salut meli,

Je te propose cette solution.

Code:
Sub envoiMail()

    Dim OlApp As Outlook.Application
    Dim OlItem As Outlook.MailItem
    Set OlApp = CreateObject("Outlook.application")
    
    Sheets(1).Activate
    Dim nbLignes As Integer
    nbLignes = Range("B65536").End(xlUp).Row
    
    For i = 3 To nbLignes
        Set OlItem = OlApp.CreateItem(olMailItem)
        With OlItem
            .To = Cells(i, 2).Value
            .Subject = "Confirmation de votre commande"
            .Body = "N° commande : " & Cells(i, 5).Value 'texte que tu veux placer
            .Display
        End With
        Application.Wait (Now + TimeValue("0:00:02"))
        SendKeys "^~", True
        AppActivate ("Microsoft Excel")
        Application.Wait (Now + TimeValue("0:00:02"))
    Next i

End Sub

La particularité de mon code est qu'il fonctionne avec Excel 2003 et le logiciel de messagerie Outlook. Pour le nombre de destinataires de ta colonne B, un mail va être créé avec Outlook, rempli avec l'@ destinataire, un sujet et un corps de message. Ensuite on affiche Outlook et on simule une frappe clavier (Ctrl + Entrée -> envoi du mail) pour éviter d'avoir un message d'alerte paralysant d'Outlook si on passait par .Send au lieu de .Display, ensuite on retourne 2 secondes après dans la fenêtre d'Excel pour générer le mail suivant et ainsi de suite.

Cordialement,
Mat'

(sinon t'as plein de discussions traitant du même problème)

EDIT: j'ai fait une macro en pensant que tu voulais automatiser l'envoi d'un mail à tous tes clients... Si tu veux le faire pour chaque client, il faut enlever la boucle For - Next et remplir les différents champs du mail avec les valeurs appropriées.. :p
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista