Rechercher dans ce blog

Nombre total de pages vues (en milliers)

EXCEL > OUTLOOK - ENVOI MAIL

Tous les jours, j'envoie des mails à partir d'Excel et ce qui me facilite amplement mon travail et me fait gagner un temps précieux, surtout si ceux-ci sont rébarbatifs.

Donc je vais vous présenter deux approches différentes :
a) La première que j'ai, longtemps, utilisée et qui fonctionne efficacement. La codification est simple.
b) La deuxième, qui personnalise et rend plus agréable la lecture des mails via le code HTML. La codification est plus élaborée mais compréhensible.
     
Dans un premier temps téléchargez le  fichier.

 https://drive.google.com/file/d/0B8KhTGQHavAjUTBYUFFGU2pnNUE/view?usp=sharing

Maintenant que vous avez téléchargé ce fichier nous allons créer un formulaire pour la gestion d'envoi des mails sous les deux versions.

Insérer un Userform et dans celui-ci incorporer :
* Une Combobox (Zone liste modifiable)
* Cinq TextBox (Zone de Texte)
* Six Label (Intitulé)
* Quatre CommandButton (Bouton de commande)
avec la boite à outils  :
Nommez les différents label à savoir :
* label1 => Noms & prénoms
* label2 => Adresse
* label3 => Code postal
* label4 => Ville
* label5 => N° de téléphone
* label6 => Adresse mail.

Nommez les différents CommandButton :
* CommandButton1 => QUITTER
* CommandButton2 => MODIFIER
* CommandButton3 => TEST ENVOI MAIL
* CommandButton4 => TEST ENVOI MAIL EN HTML

Ensuite incorporer les lignes codes suivantes qui vont servir à l'alimentation du formulaire

 'Début  ***** Code de programmation de l'Userform A_GESTION_CLIENT  *****
Option Explicit
Dim Ws As Worksheet



'***** Correspond au programme du FORMULAIRE à son ouverture *****
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
Set Ws = Sheets("CLIENTS") 'Attention ce nom doit correspondre au nom de votre ONGLET ici "CLIENTS"

With Me.ComboBox1 'Programme pour alimenter la liste déroulante avec les données de la colonne A de l'onglet CLIENTS
    For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("A" & J)
    Next J
End With
  
For I = 1 To 5
    Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox
Next I
End Sub



'***** Correspond au programme de la liste déroulante *****
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Sheets("CLIENTS").Activate 'Active l'onglet "CLIENTS"

   If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For I = 1 To 5
    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
  Next I
End Sub




'***** Correspond au programme du bouton MODIFIER *****
Private Sub CommandButton2_Click()
Sheets("CLIENTS").Activate 'Active l'onglet "CLIENTS"

If MsgBox("Etes-vous certain de vouloir modifier ce client ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For I = 1 To 5
    If Me.Controls("TextBox" & I).Visible = True Then
      Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
    End If
  Next I
    End If
End Sub 


'**** Correspond au programme du bouton "QUITTER" *****
Private Sub CommandButton1_Click()
Unload Me
End Sub 

'Fin  ***** Code de programmation de l'Userform A_GESTION_CLIENT  ***** 


A ce stade, le formulaire fonctionne pour la consultation des noms et les modifications éventuelles.

Maintenant nous allons programmer les boutons Test ENVOI MAIL.

1) Programmantion du CommandButton4 correspondant à l'envoi d'un mail au format basique.

Dès lors que vous aurez incorporer la programmation, vous pouvez envoyer un mail vers Outlook, il vous suffit d'ouvrir votre formulaire, sélectionnez un nom et cliquez sur le Bouton "TEST ENVOI MAIL".

Code à incorporer avec explications :

'***** Correspond au programme du bouton TEST ENVOI MAIL *****
Private Sub CommandButton4_Click()
Dim MailAd As String 'Variable type String soit chaîne de caractères de longueur indéterminée (Max . 2^31 caractères)
                    'Variable pour le destinatire du mail

Dim msg As String 'Variable pour le corps du mail
Dim Subj As String 'Variable pour l'objet du mail
Dim URLto As String 'Variable pour l'envoi du mail
Dim a As String

a = InputBox("Saisie de votre texte : ") ' la variable sera égale au texte inscrit dans l'InputBox

MailAd = TextBox5 'La TextBox5 correspond à l'adresse mail

Subj = a
msg = msg & "Bonjour," & "%0D%0A %0D%0A"
msg = msg & "Cordialement," & "%0D%0A" & "Votre NOM et Prénom" & "%0D%0A" & "NOM DE LA SOCIETE" & "%0D%0A" & "ADRESSE DE LA SOCIETE" & "%0D%0A" & "CODE POSTAL + VILLE" & "%0D%0A" & "N° DE TELEPHONE" & "%0D%0A %0D%0A"
URLto = "mailto:" & MailAd & "?subject=" & Subj & "&body=" & msg
ActiveWorkbook.FollowHyperlink Address:=URLto
End Sub



 Dans le corps du programme vous pouvez ajouter des données autant que vous le souhaitez.
Ceci correspond :
"%0D%0A %0D%0A" à deux retours à la ligne, un simple retour correspond à "%0D%0A
Tous les mots sont entre guillemets exemple "Bonjour" et la jointure entre les différents styles de programmation sont faite avec le signe &. 

2) Programmantion du CommandButton5 correspondant à l'envoi d'un mail au format basique.

Dès lors que vous aurez incorporer la programmation, vous pouvez envoyer un mail vers Outlook, il vous suffit d'ouvrir votre formulaire, sélectionnez un nom et cliquez sur le Bouton "TEST ENVOI MAIL HTML".

'***** Correspond au programme du bouton ENVOI MAIL en HTML *****

Private Sub CommandButton5_Click()
Dim
msg As MailItem, a, B, olapp

a = InputBox("Saisie de votre texte : ") ' la variable sera égale au texte inscrit dans l'InputBox

Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = TextBox5 'La TextBox5 correspond à l'adresse mail
'msg.CC = 'EN COPIE
'msg.BCC = 'EN COPIE CACHEE

msg.Subject = a
msg.HTMLBody = "<html><body><font color=""black""><font size=3><FONT FACE=""Georgia"">" & "Bonjour, " & _
"</B><br /><br /><pre><font size=3><FONT FACE=""Georgia""><font color=""GREEN""><B>" & a & "</FONT></FONT></FONT></B></pre>" & _
"<br /><br />" & "Cordialement" & _
"<br /><B>" & "NOM et PREMOM" & _
"<br /><font color=""Blue"">" & "NOM DE LA SOCIETE" & "</B>" & _
"<br /><i>" & "ADRESSE DE LA SOCIETE" & _
"<br />" & "CODE POSTAL + VILLE" & _
"<br />" & "NUMERO TE TELEPHONE" & "</i></FONT>" & _
"<br /><br /><br />" & " </font></font></body></html>"

 


msg.Display 'envoi du mail
End Sub 


Pour la mise en forme du mail il suffit d'effectuer la programmation sur la base du code HTML dont voici quelques exemples :
"<br />" pour le retour à la ligne
"<B>" pour paragraphe en gras
"</B>" pour ôter le gras
"<i>" pour paragraphe en italique
"</i>" pour ôtez l'italique
et etc.

Exemple pour mettre Bonjour en gras, italique et avec la police Georgia.

"<B><i><FONT FACE=""Georgia"">"  & "Bonjour"  

Ci-après aperçu de l'envoi de différents mails suivant mise en forme :
1) Mise en forme "Basique"


2) Mise en forme "HTML"


     

N'hésitez surtout pas à rédiger vos commentaires sur cette page suivant procédure suivante (capture image) :

 






 


  

 




 
 

Aucun commentaire :

Enregistrer un commentaire

Pour vous aider à publier votre commentaire, voici la marche à suivre :
1) Ecrivez votre texte dans le formulaire de saisie ci-dessus
2) Si vous avez un compte, vous pouvez vous identifier dans la liste déroulante Commentaire
Sinon, vous pouvez saisir votre nom ou pseudo par Nom/URL
3) Vous pouvez, en cliquant sur le lien S'abonner par e-mail, être assuré d'être avisé en cas d'une réponse
4) Cliquer sur Publier enfin.

Le message sera publié après modération.
Merci