Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sendmail pour un groupe de destinataire

4 réponses
Avatar
Ramsès
Bonjour

J'essaie d'envoyer un courriel à plusieurs destinataires.
Lorsque j'écris la liste des destinataires dans la zone Array sous le format
"Nom1", "Nom2", ça fonctionne.
Lorsque je construit la liste à partir d'une liste fournie dans une userform
avec le code suivant

Destinataire = Replace(COURRIEL.Destinataire, ";", Chr(34) & ", " & Chr(34))

lors de l'envoi, avec le code suivant,

ActiveWorkbook.SendMail Recipients:=Array(Destinataire), Subject:=Objet,
returnreceipt:=ACCUSE

je reçois un message m'avisant qu'un des destinataires est inconnu
N.B. si la liste construite contient un seul nom, ça fonctionne également

Merci de m'aider

4 réponses

Avatar
j
ton "replace..." transforme un texte "toto;zaza" en texte séparé par des
virgules et des guillemets (toto","zaza)
quand tu écris array de ton texte, il considère que toto","zaza est un seul
destinataire (inconnu !)
a mon avis, il faut que tu boucles sur ton texte pour le couper en morceaux
et mettre les morceaux dans un array
(si tu patauges pour cette étape, redemande)
Avant ça, as-tu essayé de faire simplement recipients=COURRIEL.Destinataires
(en gardant la série de noms séparés par des points-virgules) ?

http://jacxl.free.fr




"Ramsès" a écrit dans le message de news:

Bonjour

J'essaie d'envoyer un courriel à plusieurs destinataires.
Lorsque j'écris la liste des destinataires dans la zone Array sous le
format

"Nom1", "Nom2", ça fonctionne.
Lorsque je construit la liste à partir d'une liste fournie dans une
userform

avec le code suivant

Destinataire = Replace(COURRIEL.Destinataire, ";", Chr(34) & ", " &
Chr(34))


lors de l'envoi, avec le code suivant,

ActiveWorkbook.SendMail Recipients:=Array(Destinataire),
Subject:=Objet,

returnreceipt:¬CUSE

je reçois un message m'avisant qu'un des destinataires est inconnu
N.B. si la liste construite contient un seul nom, ça fonctionne également

Merci de m'aider



Avatar
Ramsès
Bonjour

J'ai essayé avec recipients=COURRIEL.Destinataire, mais ça ne fonctionne pas.

Je ne comprend pas ce que tu veux dire par «boucler sur mon texte». Ça va
donner le même résultat puisque chaque élément de la zone «Array» doit être
inscrit entre guillemets et séparé par une virgule. Sinon, ça ne fonctionne
pas.

Merci pour ton aide


ton "replace..." transforme un texte "toto;zaza" en texte séparé par des
virgules et des guillemets (toto","zaza)
quand tu écris array de ton texte, il considère que toto","zaza est un seul
destinataire (inconnu !)
a mon avis, il faut que tu boucles sur ton texte pour le couper en morceaux
et mettre les morceaux dans un array
(si tu patauges pour cette étape, redemande)
Avant ça, as-tu essayé de faire simplement recipients=COURRIEL.Destinataires
(en gardant la série de noms séparés par des points-virgules) ?

http://jacxl.free.fr




"Ramsès" a écrit dans le message de news:

Bonjour

J'essaie d'envoyer un courriel à plusieurs destinataires.
Lorsque j'écris la liste des destinataires dans la zone Array sous le
format

"Nom1", "Nom2", ça fonctionne.
Lorsque je construit la liste à partir d'une liste fournie dans une
userform

avec le code suivant

Destinataire = Replace(COURRIEL.Destinataire, ";", Chr(34) & ", " &
Chr(34))


lors de l'envoi, avec le code suivant,

ActiveWorkbook.SendMail Recipients:=Array(Destinataire),
Subject:=Objet,

returnreceipt:¬CUSE

je reçois un message m'avisant qu'un des destinataires est inconnu
N.B. si la liste construite contient un seul nom, ça fonctionne également

Merci de m'aider








Avatar
j
ce que je veux dire c'est que ton array(destinataire) n'est pas un tableau
contenant les différents destinataires, mais est un tableau contenant un
seul élément au format texte
ce que tu peux faire c'est remplir ton tableau destinataire par destinataire
avec un truc du genre de ce qui est plus bas (il y a surement plus rapide) :

num = 0
ReDim zaza(num)
dest = COURRIEL.Destinataire & ";"
While InStr(dest, ";") > 0
ReDim Preserve zaza(num)
zaza(num) = Left(dest, InStr(dest, ";") - 1)
dest = Right(dest, Len(dest) - InStr(dest, ";"))
num = num + 1
Wend
ActiveWorkbook.SendMail Recipients:=zaza, Subject:=Objet,
returnreceipt:¬CUSE


http://jacxl.free.fr



"Ramsès" a écrit dans le message de news:

Bonjour

J'ai essayé avec recipients=COURRIEL.Destinataire, mais ça ne fonctionne
pas.


Je ne comprend pas ce que tu veux dire par «boucler sur mon texte». Ça va
donner le même résultat puisque chaque élément de la zone «Array» doit
être

inscrit entre guillemets et séparé par une virgule. Sinon, ça ne
fonctionne

pas.

Merci pour ton aide


ton "replace..." transforme un texte "toto;zaza" en texte séparé par des
virgules et des guillemets (toto","zaza)
quand tu écris array de ton texte, il considère que toto","zaza est un
seul


destinataire (inconnu !)
a mon avis, il faut que tu boucles sur ton texte pour le couper en
morceaux


et mettre les morceaux dans un array
(si tu patauges pour cette étape, redemande)
Avant ça, as-tu essayé de faire simplement
recipients=COURRIEL.Destinataires


(en gardant la série de noms séparés par des points-virgules) ?

http://jacxl.free.fr




"Ramsès" a écrit dans le message de
news:



Bonjour

J'essaie d'envoyer un courriel à plusieurs destinataires.
Lorsque j'écris la liste des destinataires dans la zone Array sous le
format

"Nom1", "Nom2", ça fonctionne.
Lorsque je construit la liste à partir d'une liste fournie dans une
userform

avec le code suivant

Destinataire = Replace(COURRIEL.Destinataire, ";", Chr(34) & ", " &
Chr(34))


lors de l'envoi, avec le code suivant,

ActiveWorkbook.SendMail Recipients:=Array(Destinataire),
Subject:=Objet,

returnreceipt:¬CUSE

je reçois un message m'avisant qu'un des destinataires est inconnu
N.B. si la liste construite contient un seul nom, ça fonctionne
également




Merci de m'aider










Avatar
Ramsès
Bonjour ,

Merci beaucoup pour tes informations. Je n'avais pas répondu avant parce que
je n'avais pas de temps à consacrer à ce traitement. Ça fonctionne très bien
en plaçant chaque destinataire dans une entrée de table et en mettant la
table comme destinataire.

Ramsès


ce que je veux dire c'est que ton array(destinataire) n'est pas un tableau
contenant les différents destinataires, mais est un tableau contenant un
seul élément au format texte
ce que tu peux faire c'est remplir ton tableau destinataire par destinataire
avec un truc du genre de ce qui est plus bas (il y a surement plus rapide) :

num = 0
ReDim zaza(num)
dest = COURRIEL.Destinataire & ";"
While InStr(dest, ";") > 0
ReDim Preserve zaza(num)
zaza(num) = Left(dest, InStr(dest, ";") - 1)
dest = Right(dest, Len(dest) - InStr(dest, ";"))
num = num + 1
Wend
ActiveWorkbook.SendMail Recipients:=zaza, Subject:=Objet,
returnreceipt:¬CUSE


http://jacxl.free.fr



"Ramsès" a écrit dans le message de news:

Bonjour

J'ai essayé avec recipients=COURRIEL.Destinataire, mais ça ne fonctionne
pas.


Je ne comprend pas ce que tu veux dire par «boucler sur mon texte». Ça va
donner le même résultat puisque chaque élément de la zone «Array» doit
être

inscrit entre guillemets et séparé par une virgule. Sinon, ça ne
fonctionne

pas.

Merci pour ton aide


ton "replace..." transforme un texte "toto;zaza" en texte séparé par des
virgules et des guillemets (toto","zaza)
quand tu écris array de ton texte, il considère que toto","zaza est un
seul


destinataire (inconnu !)
a mon avis, il faut que tu boucles sur ton texte pour le couper en
morceaux


et mettre les morceaux dans un array
(si tu patauges pour cette étape, redemande)
Avant ça, as-tu essayé de faire simplement
recipients=COURRIEL.Destinataires


(en gardant la série de noms séparés par des points-virgules) ?

http://jacxl.free.fr




"Ramsès" a écrit dans le message de
news:



Bonjour

J'essaie d'envoyer un courriel à plusieurs destinataires.
Lorsque j'écris la liste des destinataires dans la zone Array sous le
format

"Nom1", "Nom2", ça fonctionne.
Lorsque je construit la liste à partir d'une liste fournie dans une
userform

avec le code suivant

Destinataire = Replace(COURRIEL.Destinataire, ";", Chr(34) & ", " &
Chr(34))


lors de l'envoi, avec le code suivant,

ActiveWorkbook.SendMail Recipients:=Array(Destinataire),
Subject:=Objet,

returnreceipt:¬CUSE

je reçois un message m'avisant qu'un des destinataires est inconnu
N.B. si la liste construite contient un seul nom, ça fonctionne
également




Merci de m'aider