XL 2016 Excel avec envoi par mail en cliquant sur le nom d'un client selon une sélcetion

  • Initiateur de la discussion Initiateur de la discussion ellea02
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ellea02

XLDnaute Junior
Bonjour à tous,

Je cherche à envoyer par mail une sélection Excel qui selon le nom du client l'envoie à son adresse mail.

Un client peut se nommer Client X N°1, Client X n°2..... Client Y N°....

Lorsque je souhaite envoyer au client X la sélection devra me prendre le N° 1 et le N°2.

Chaque onglet correspond à un jour de travail et nous envoyons la sélection aux clients tous les jours.

Pouvez vous m'aider?

Nous envoyons 50 mails par jour à nos clients et cela devient compliquer de tout faire en manuel
 

Pièces jointes

Bonjour Ellea02, le forum,

Voici un exemple si j'ai bien compris la demande.

Le choix du client se fait en cliquant sur le bouton Client créé sur la 1ère feuille.

Ensuite une macro est appelée pour l'envoi du mail.
VB:
Option Explicit
Public client As Range, List, clientAdresse As String, jour
Sub Choix_Client()
Dim clientcherche As String
Dim i As Single, r As String, r2 As String

jour = ""
clientcherche = InputBox("Client")
    Set client = Feuil4.Columns(1).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Find(clientcherche)
clientAdresse = client.Offset(, 1)

For i = 2 To 5
If Cells(i, 1) Like "Client " & clientcherche & "*" Then
    r = Cells(i, 1) & ";"
    r2 = Cells(i, 2) & ";"
    List = List & r
    jour = jour & Chr(10) & r2
End If
Next i
Call mail
End Sub
Sub mail()
Dim Myoutlook As Object
Dim MyItem As Object
Dim List As String, Attache As String, Attache2 As String, Sujet As String
Dim f As Worksheet, f1 As Worksheet, Body As String

Set Myoutlook = CreateObject("Outlook.Application")
Set MyItem = Myoutlook.CreateItem(0)

Sujet = "Bla bla bla" ' & Feuil1.Range("A1")
Body = "Vos jours de réservation sont :" & Chr(10) & jour
With MyItem
    .To = clientAdresse
    .Subject = Sujet
    .Body = Body
suite:
    .Display
'    '.Send
End With


End Sub

Pour que cela fonctionne, il a fallu cocher "Microsoft Outlook 12.0 Object Library" dans les références VBA. Sinon cela ne peut pas fonctionner.

Voilà qui devrait être un bon début.

Bonne journée.
A+
 

Pièces jointes

Calvus,

Est ce normal que dans le mail, la sélection des jours de réservation ne s'affichent pas? Nous cherchons à faire un copier/coller de ce type dans le mail:

Merci
Nom Client​
jour de réservation​
motif​
Client X n°1​
01-juin​
gfgfgf​
Client X n°2​
02-juin​
fgggd​
 
Dernière édition:
Bonjour,

Je t'avoue que j'ai galéré pas mal !
J'aurais mieux fait de partir à la montagne, mais bon... la météo n'est pas de mon coté ! 😉

Voici ce que tu souhaites, enfin j'espère.
Pas mal cherché sur le net pour trouver un code fonctionnel.
VB:
Option Explicit
Public client As Range, clientAdresse As String
Sub Choix_Client()
Dim clientcherche As String
Dim i As Single, j As String, r As String, r2 As String

clientcherche = InputBox("Choix du client")
Set client = Feuil4.Columns(1).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Find(clientcherche)
If client Is Nothing Then Exit Sub
clientAdresse = client.Offset(, 1)

j = 2
For i = 2 To 5
If Cells(i, 1) Like "Client " & clientcherche & "*" Then
        Cells(j, 10) = Cells(i, 1)
        Cells(j, 11) = Cells(i, 2)
        j = j + 1
End If
Next i
 
Call mail
End Sub
Sub mail()
Dim Myoutlook As Object
Dim MyItem As Object

Dim strHTML As String
Dim i As Byte, j As Byte, Sujet As String
 
Set Myoutlook = CreateObject("Outlook.Application")
Set MyItem = Myoutlook.CreateItem(0)
 
Sujet = Feuil5.Range("C2")
 
strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & Feuil5.Range("C3") & "<BR><BR><BR>" & Feuil5.Range("C4") & "<BR><BR>" & Feuil5.Range("C5") & "<BR><BR>"
strHTML = strHTML & "<TABLE BORDER>"
 
For i = 1 To 3 'nombre de lignes (exemple plage A1:B5)
    strHTML = strHTML & "<TR halign='middle'nowrap>"
    For j = 10 To 12 'nombre de colonnes
        strHTML = strHTML & "<TD bgcolor='#F0FFFF'align='center'><FONT COLOR='blue'SIZE=3>" _
        & Cells(i, j) & "</FONT></TD>"
    Next j
    strHTML = strHTML & "</TR>"
Next i
 
 
strHTML = strHTML & "</TABLE>"
 
strHTML = strHTML & "<BR><BR>" & Feuil5.Range("C6") & "<BR>" & Feuil5.Range("C7") & "<BR><BR>" & Feuil5.Range("C8") _
& "<BR>" & Feuil5.Range("C9") & "<BR>" & Feuil5.Range("C10") & "<BR>" & Feuil5.Range("C12") & "<BR>" & Feuil5.Range("C13")
strHTML = strHTML & "</BODY>"
strHTML = strHTML & ""
 
With MyItem
    .To = clientAdresse
    '.From = "youralias@yourdomain.com"
    .Subject = Sujet
    .HTMLBody = strHTML
    .Display
End With

End Sub

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
989
Réponses
1
Affichages
1 K
Compte Supprimé 979
C
Retour