Envois de mails
Bonjour,
Alors je suis débutant en VBA et je voudrais faire un fichier pour envoyer des mails.
j'ai ma liste de contactes (destinataire du mail) donc choix d'une seule adresse mail.
j'ai une liste de contactes qui vont me servir pour mettre jusqu'à 6 personnes en copie.
j'ai une liste d'objets.
j'ai mes corps de mail (environ 25) qui vont me servir à remplir mon mail.
j'utilise Outlook.
donc pour le moment je travaille avec des enveloppes que j'ai créé (j'en suis à une 50 éne) et il en arrive tout le temps.
est il possible de mettre ça sous forme d'un fichier Excel :
liste déroulante pour choisir le destinataire, les destinataires en copie, l'objet et le corps.
comme ça je fait mon choix sur chaque menu et un bouton envoyer (création du mail mais envois de celui-ci en manuel pour d'éventuels corrections pour adapter).
mes bases de destinataires et objets sont mise à jour une fois par jour.
j'ai donc un fichier Excel avec un onglet destinataire, un onglet copie, un onglet objets.
en ce qui concerne le corps du mail j'ai un répertoire avec des fichiers txt pour chaque situation.
j'espère que je me suis bien expliqué.
pouvez-vous me dire comment je dois faire pour réaliser ce fichier
Par avance merci et bonne journée à tous
Bonjour,
Personnellement je construirais dans une feuille excel, une colonne pour les destinataires, une autre pour les copies, encore une autre avec les objets et en fin une dernière avec les adresses de fichiers texte.
Dans un Userform, de même, il faudrait alors construire 4 listBox respectivement pour récupérer les destinataires, les copies, les objets et les textes, afiin de pouvoir construire en cliquant sur ces listboxs le message que vous voulez envoyer
Je ne sais pas si mon idée peut vous convenir
A+
Merci bien je vais m'y mettre
Bonjour à tous,
Ci-joint un petit exemple qui illustre la proposition de @Jacky. Mettre à jour le chemin en I1 pour votre dossier des modèles.
Bonjour à tous,
Merci pour vos réponses j'ai réussis via l'AI.
Voici mon code si cela peut servir.
j'ai juste à rajouter au fur et à mesure mais nouvelle données et variable.
Sub CreerEtAfficherMail()
Dim OutlookApp As Object
Dim Mail As Object
Dim Destinataire As String
Dim Copie As String
Dim Objet As String
Dim FichierTxt As String
Dim TexteFichier As String
Dim FichierPath As String
Dim FichierComplete As String
' Récupérer les données
Destinataire = Range("D3").Value
Objet = Range("D14").Value
FichierTxt = Range("F14").Value
' Construire la chaîne pour la copie (D6 à D11)
Dim i As Integer
Dim CopieArr As String
CopieArr = ""
For i = 6 To 11
If Range("D" & i).Value <> "" Then
If CopieArr = "" Then
CopieArr = Range("D" & i).Value
Else
CopieArr = CopieArr & ";" & Range("D" & i).Value
End If
End If
Next i
' Chemin complet du fichier
FichierPath = ThisWorkbook.Path & "\"
FichierComplete = FichierPath & FichierTxt
' Lire le fichier en utilisant ADODB.Stream pour gérer l'encodage UTF-8
Dim Stream As Object
Set Stream = CreateObject("ADODB.Stream")
On Error Resume Next
With Stream
.Type = 2 ' Texte
.Charset = "utf-8" ' ou "iso-8859-1" si votre fichier est en ANSI
.Open
.LoadFromFile FichierComplete
TexteFichier = .ReadText
.Close
End With
If Err.Number <> 0 Then
MsgBox "Impossible de lire le fichier : " & FichierComplete, vbExclamation
Exit Sub
End If
On Error GoTo 0
' Créer le mail
Set OutlookApp = CreateObject("Outlook.Application")
Set Mail = OutlookApp.CreateItem(0)
' Remplacer "parpar" dans l'objet par la valeur de F4
Objet = Replace(Objet, "parpar", Range("F4").Value)
TexteFichier = Replace(TexteFichier, "datedate", Range("F5").Value)
With Mail
.To = Destinataire
.CC = CopieArr
.Subject = Objet
.Body = TexteFichier
.Display
End With
End SubBonne continuation à tous.