Envoyer email par VBA
Bonjour
voila j'ai un programme VBA qui fonctionne masi je voulais le modifier un peu
pour envoyer des message
voila j'ai une ligne qui est
MonMessage.To = "<aaaa@xxx.com>;bbbb <bbbb@xxx.com>;bbb <bbb@xxx.com>;cccc <cccc@xxx.com>;dddd <dddd@xxx.com>;eee <eee@xxx.com>; fff<fff@xxx.com>; ggg<ggg@xxx.com>;hhh <hhh@xxx.com>;" + Sheets("liste").Cells(517, 27).Value + ";" + Sheets("liste").Cells(517, 29).Value
cela fonctionne tres bien
je voudrais remplacer les email par email1.....email12
je pensais raouter dans la macro
Dim email1 As String, email2 As String, email3 As String, email4 As String, eamil5 As String, email6 As String, email7 As String, email8 As String, email9 As String, email10 As String, email11 As String, email12 As String
email1 = Sheets("Email").Cells(1, 1).Value
email2 = Sheets("Email").Cells(1, 2).Value
email3 = Sheets("Email").Cells(1, 3).Value
email4 = Sheets("Email").Cells(1, 4).Value
email5 = Sheets("Email").Cells(1, 5).Value
email6 = Sheets("Email").Cells(1, 6).Value
email7 = Sheets("Email").Cells(1, 7).Value
email8 = Sheets("Email").Cells(1, 8).Value
email9 = Sheets("Email").Cells(1, 9).Value
email10 = Sheets("Email").Cells(1, 10).Value
email11 = Sheets("Email").Cells(1, 11).Value
email12 = Sheets("Email").Cells(1, 12).Value
Pour aller chercher dans ma feuille email les noms des personnes
comme cela si demain si je dois rajouter une personne cela m'éviter d'aller dans le programme
et a la place de ma ligne je voulais mettre les email1 ....
MonMessage.To = email1 + ";" +email2 + ";" +email3 + ";" + Sheets("liste").Cells(517, 27).Value + ";" + Sheets("liste").Cells(517, 29).Value
mais cela ne focntionne pas
quelqu'un peut m'aider
Bonjour,
Il se peut que le problème vienne de la manière dont les chaînes de caractères sont combinées. Dans VBA, on utilise généralement "&" pour concaténer des chaînes, plutôt que "+".
Voici comment vous pourriez reformuler votre ligne de code
MonMessage.To = email1 & ";" & email2 & ";" & email3 & ";" & Sheets("liste").Cells(517, 27).Value & ";" & Sheets("liste").Cells(517, 29).Value
Si vous utilisez un nombre d'adresses email variable, je recommande d'utiliser une approche plus dynamique, comme une boucle, pour ajouter les adresses email. Par exemple :
Dim email(12) As String
Dim emailTo As String
Dim i As Integer
For i = 1 To 12
email(i) = Sheets("Email").Cells(1, i).Value
emailTo = emailTo & email(i) & ";"
Next i
emailTo = emailTo & Sheets("liste").Cells(517, 27).Value & ";" & Sheets("liste").Cells(517, 29).Value
MonMessage.To = emailTo
Cette boucle va parcourir vos 12 adresses email, les ajouter à la chaîne emailTo
et enfin ajouter les deux adresses de la feuille "liste".
Pas de souci !