Le fichier joint sert de test.
J'ai créé une macro de manière à créer un document en pdf et l'envoyer directement par mail.
cela fonctionne, il y a juste un petit détail que j'aimerai améliorer dans la macro "Mail", c'est cette ligne,
with Sheets("Destinataire mail"):Mail2 = .Range("B2", Cells(Rows.Count, "B").End(xlUp)):end with
cela dit ton exemplaire de fichier n'est pas très représentatif
tu a le mot "date:" dans B2 et ce n'est pas un mail
il faut faire un peu plus d'effort dans vos demande et les fichiers que tu envoie avec la demande
les réponses que tu aura seront à la hauteur de la précision de la demande
Merci de ton retour, je viens de tester les 2 solutions cela présente un bug.
Désolé si les explications ne sont pas assez explicites. Le mot "date" est sur la feuille [Document] alors que le B2 dont il s'agit est dans la feuille [destinataire mail] ou il y a bien un mail.
La feuille [document] va servir de présentation encore à définir (à construire) et dans la feuille [destinataire mail] un tableau Excel nommé TbMail est composé de 2 colonnes, en Col A le nom de la personne et en Col B les adresses mail.
L'objectif est de pouvoir ajouter ou supprimer des adresses mails dans la feuille [destinataire mail] sans devoir rentrer dans la macro "Mail" pour y modifier le nombre de lignes à prendre en charge (pour le moment B2:B4) mais que cela s'ajuste automatiquement.
Si besoin plus de détails, hésite pas.
Merci
Cdlt, pompaero
Bonjour @BrunoM45
ce qu'il y a de bien avec les listobjects ou les ranges nommées c'est qu'il ne peut y en avoir qu'une du même nom
il n'est donc pas nécessaire de préciser le parents
même si a feuille parent du range n'est pas celle qui est active
VB:
Mail2 = Range("TbMail[Adresse mail]")
liste = ""
For Each C In Mail2
liste = liste & ";" & C
Next C
MsgBox liste
Bonjour @BrunoM45
ce qu'il y a de bien avec les listobjects ou les ranges nommées c'est qu'il ne peut y en avoir qu'une du même nom
il n'est donc pas nécessaire de préciser le parents
même si a feuille parent du range n'est pas celle qui est active
VB:
Mail2 = Range("TbMail[Adresse mail]")
liste = ""
For Each C In Mail2
liste = liste & ";" & C
Next C
MsgBox liste
Merci Patrick, effectivement,
En revanche, si je peux me permettre, pour le remplissage de la liste, ce n'est pas correct
Le ";" doit se trouver après le nom et nom avant
re
oui exact Bruno je me suis contenter de copier coller le code de notre ami
cela dit tu aura un ";" a la fin de trop par la force des choses
perso je n'ai jamais fait comme ça
et là en l’occurrence on peut tout automatiser en un seul coup liste= join(application.transpose(Range("TbMail[Adresse mail]")),";")
Belle échange entre vous, c'est cool.
Merci à vous, je viens de tester votre macro finale avec les petits ajustement et cela fonctionne à merveille.
Je vous remercie encore et encore désolé pour le manque d'explications du départ.
Bonne soirée
Cdlt, pompaero;