Relance client par mail.

vins1892

XLDnaute Nouveau
Bonjour à tous,

J'ai cherché sur le forum et trouvé des bribes de codes pour formater un mail sus base d'infos dans Excel, mais j'ai du mal à assembler le tout ...
Je souhaiterais automatiser la relance de clients pour factures impayées.

Le fichiers Excel se présnte comme ceci:

Nom du Client N° fact Echéance Montant Contact

Client A 1 30/04/2008 100 clientA@gmail.com
Client B 2 30/04/2008 200 clientB@gmail.com
Client C 3 30/04/2008 300 clientC@gmail.com

Je souhaiterais associer une macro en VBA pour qu'un mail soit généré ainsi:

Cher monsieur, madame,

votre facture n° 1 à échéance 30/04/2008 pour un montant de 100 est impayée, ....

Je suis sous Excel 2003 et Outlook 2003.

Merci pour votre aide.
 

GIBI

XLDnaute Impliqué
Re : Relance client par mail.

Bonjour,

Voici une exemple

de macro


La macro est nommé Email (Outlook), elle peut peut être activée via un bouton
Chaque ligne traitée est marquée "Envoyé"

Cordialement

GIBI
 

Pièces jointes

  • Email.zip
    13.8 KB · Affichages: 574
  • Email.zip
    13.8 KB · Affichages: 527
  • Email.zip
    13.8 KB · Affichages: 536

JCGL

XLDnaute Barbatruc
Re : Relance client par mail.

Bonjour à tous,
Salut GIBI,

Une question : connais-tu la ligne qu'il faut modifier dans la Base de Registre pour s'affranchir de l'avertissement Outlook concernant la sécurité (je suis Serveur Exchange et XL 2003).
Je ne souhaite pas utiliser ni Redemption, ni ClickYes...

Merci et A++

A+ à tous
 

abtony

XLDnaute Impliqué
Re : Relance client par mail.

Bonjour vins1892, gibi, jcgl le forum,

gibi, très bien ton fichier mais comment mettre une condition, si la date d'échéance est pas échue alors pas de mail ?

je me suis permis une correction sur la colonne montant de la facture.

Code:
vObjet = "Relance écheance " & Format(Cells(Lig, 2).Value, "DD/MM/YYYY") ' description
     vMessage = "Cher Madame, Monsieur ," & vbCrLf & vbCrLf _
               & " votre facture n° " & Cells(Lig, 4).Value _
               & " à échéance " & Format(Cells(Lig, 2).Value, "DD/MM/YYYY") _
               [B]& " pour un montant de " & Cells(Lig, 3).Value & " est impayée, " & [/B]vbCrLf & vbCrLf _
               & "Cordialement"
sinon très rapide dans l'envoi, et pas besoin d'ouvrir outlook tout simplement Bravo

Merci
 

vins1892

XLDnaute Nouveau
Re : Relance client par mail.

Merci beaucoup, ça fonctionne bien.

Il y aurait moyen de grouper l'envoi en cas de plusieurs factures impayées du même client?

Cher xxxx, vos factures n° aaaa pour xxx EUR, n° bbbb pour yyy EUR sont à échéances ...

Merci.
 

GIBI

XLDnaute Impliqué
Re : Relance client par mail.

salut, voici la suite (mais, abtony n'y reviens plus!....)

Il suffit d'ajouter un test par rapport à une date de référence, dans l'exemple j'ai pris la date du jour+3 jours et de comparer

Pour le groupage, c'est pas difficile mais faut le faire (si j'ai 10')

Dim DateRef

DateRef = DateAdd("d", 3, Date) ' date du jour +3 jours

Lig = 2
Do While Cells(Lig, 1).Value <> ""


If Cells(Lig, 6).Value = "" _
And Cells(Lig, 2).Value < DateRef Then '<==== ajout test sur la date
 

Pièces jointes

  • Email.zip
    14.3 KB · Affichages: 216
  • Email.zip
    14.3 KB · Affichages: 196
  • Email.zip
    14.3 KB · Affichages: 196
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Relance client par mail.

Re,
Salut Kiki29

Merci GIBI (en MP) et Kiki29 pour vos liens : je teste demain au boulot et je vous tiens au courant en MP (pour ne pas tenter le diable et ne pas avoir à gérer des messages demandant comment "réparer" la BDR arf arf)

A++
A+ à tous
 

GIBI

XLDnaute Impliqué
Re : Relance client par mail.

pour vins1992 la suite,


J'ai ajouter le traitement d'un client, à toi d'ajuster le message : normalement le code est lisible



GIBI

J'ai corrigé la mise en forme du montant ==> fait un copier/coller

While ClientEnCours = Cells(Lig, 1).Value ' On traite les lignes du client
If Cells(Lig, 2).Value < DateRef Then ' date < date de référence
Cells(Lig, 6).Value = "Envoyé"
VMessage = VMessage & " votre facture n° " & Cells(Lig, 3).Value _
& " à échéance " & Format(Cells(Lig, 2).Value, "DD/MM/YYYY") _
& " pour un montant de " & Format(Cells(Lig, 3).Value, "# ##0.00 €") _
& " est impayée, " & vbCrLf
End If
Lig = Lig + 1
Wend
 

Pièces jointes

  • Email.zip
    15.2 KB · Affichages: 304
  • Email.zip
    15.2 KB · Affichages: 289
  • Email.zip
    15.2 KB · Affichages: 320
Dernière édition:

Agatheb

XLDnaute Nouveau
Bonjour,
Je me suis permise d'essayer votre macro et j'ai une erreur 287 qui apparaît et je n'y connais rien en VBA.

Pourriez-vous m'aider?

Bonne journée
1591104097906.png
 

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof