Envoi de mail depuis excel plusieurs champs
Résolu
manu7762323
Messages postés
11
Statut
Membre
-
manu7762323 Messages postés 11 Statut Membre -
manu7762323 Messages postés 11 Statut Membre -
Bonjour,
J'ai un envoi de mails assez important à réaliser, qui concerne précisément 180 personnes, avec intégrations d'informations différentes pour chacun dans un corps de texte identique.
En détail :
Le service informatique de ma boite propose aux utilisateurs un serveur de sauvegarde pour leurs documents professionnels.
Ce serveur arrive à saturation, donc je vais envoyer un mail individuel à chacun leur demandant de faire un peu de ménage.
J'ai un fichier Excel dans lequel j'ai "Nom / Prénom / Mail / Espace occupé" pour chacun. Je souhaite créer une macro qui permette d'envoyer simultanément un mail à chacun, avec le même objet et le message suivant :
---------------
"Bonjour,
Sur le serveur de sauvegarde, vous occupez actuellement [ici la taille d'espace disque correspondant à l'utilisateur auquel le mail est envoyé] Go d'espace disque.
Le serveur étant en surcharge, blablabla...
Merci d'avance de faire le nécessaire dans votre répertoire de sauvegarde sur le serveur, blablabla....
Merci pour votre collaboration.
blablabla…"
---------------
Voici le lien vers un fichier de test pour que vous puissiez voir comment cela se présente.
http://dl.free.fr/getfile.pl?file=/nUkVaBdq
De plus, il faudrait que ce message soit envoyé par l'adresse de messagerie du service. Ma messagerie Outlook est ouverte sous mon compte. Il faudrait pouvoir renseigner le champ "De..." par l'adresse mail du service info.
J'ai écris un code déjà qui fait tout ce que je veux. Deux points sur lesquels je bloque :
- Remplir le champ "De..." par l'adresse du service.
- Insérer la taille d'espace utilisé pour chacun.
Vous comprendrez mieux avec le fichier.
Si vous avez des questions ou des points que vous voulez que j'éclaircisse, n'hésitez pas !
Merci d'avance pour votre aide :)
J'ai un envoi de mails assez important à réaliser, qui concerne précisément 180 personnes, avec intégrations d'informations différentes pour chacun dans un corps de texte identique.
En détail :
Le service informatique de ma boite propose aux utilisateurs un serveur de sauvegarde pour leurs documents professionnels.
Ce serveur arrive à saturation, donc je vais envoyer un mail individuel à chacun leur demandant de faire un peu de ménage.
J'ai un fichier Excel dans lequel j'ai "Nom / Prénom / Mail / Espace occupé" pour chacun. Je souhaite créer une macro qui permette d'envoyer simultanément un mail à chacun, avec le même objet et le message suivant :
---------------
"Bonjour,
Sur le serveur de sauvegarde, vous occupez actuellement [ici la taille d'espace disque correspondant à l'utilisateur auquel le mail est envoyé] Go d'espace disque.
Le serveur étant en surcharge, blablabla...
Merci d'avance de faire le nécessaire dans votre répertoire de sauvegarde sur le serveur, blablabla....
Merci pour votre collaboration.
blablabla…"
---------------
Voici le lien vers un fichier de test pour que vous puissiez voir comment cela se présente.
http://dl.free.fr/getfile.pl?file=/nUkVaBdq
De plus, il faudrait que ce message soit envoyé par l'adresse de messagerie du service. Ma messagerie Outlook est ouverte sous mon compte. Il faudrait pouvoir renseigner le champ "De..." par l'adresse mail du service info.
J'ai écris un code déjà qui fait tout ce que je veux. Deux points sur lesquels je bloque :
- Remplir le champ "De..." par l'adresse du service.
- Insérer la taille d'espace utilisé pour chacun.
Sub envoi_mail()
'--- Envoi par mail
Dim olapp As Outlook.Application
Range("D3").Select
Do While Not IsEmpty(ActiveCell)
Dim msg As MailItem
Set olapp = New Outlook.Application
Set msg = olapp.CreateItem(olMailItem)
msg.To = ActiveCell.Value
msg.Subject = Range("A19").Value
msg.Body = Range("A23").Value & Range("F3").Value & Range("A25").Value
msg.Send
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Vous comprendrez mieux avec le fichier.
Si vous avez des questions ou des points que vous voulez que j'éclaircisse, n'hésitez pas !
Merci d'avance pour votre aide :)
A voir également:
- Envoi de mail depuis excel plusieurs champs
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Word et excel gratuit - Guide
- Programmer envoi mail gmail - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
9 réponses
bonjour
- Remplir le champ "De..." par l'adresse du service.
Il faut utiliser la propriété SendUsingAccount qui définit le compte de messagerie à utiliser.
msg.SendUsingAccount = olapp.GetNamespace("MAPI").Accounts("UneAdresse")
L'adresse doit être valide dans outlook.
- Insérer la taille d'espace utilisé pour chacun.
msg.Body = Range("A23").Value & ActiveCell.Offset(0, 2).Value & Range("A25").Value
- Remplir le champ "De..." par l'adresse du service.
Il faut utiliser la propriété SendUsingAccount qui définit le compte de messagerie à utiliser.
msg.SendUsingAccount = olapp.GetNamespace("MAPI").Accounts("UneAdresse")
L'adresse doit être valide dans outlook.
- Insérer la taille d'espace utilisé pour chacun.
msg.Body = Range("A23").Value & ActiveCell.Offset(0, 2).Value & Range("A25").Value
Bonjour !
Merci pour cette réponse !
Alors pour le "SendUsingAccount", ça n'a pas fonctionné. J'ai cherché un peu plus loin et j'ai trouvé que cette propriété n'est disponible que sous Office 2007. Je suis en 2003...je ferai donc sans.
Je vais afficher donc afficher les messages pour remplir le champ manuellement avec un "msg.display"
Pour le second point, ca marche parfaitement ! Petite question cependant : dans mon fichier excel, le format de ma colonne est "nombre" avec 2 décimales. Mais lorsque j'exécute la macro, je retrouve dans le mail le nombre avec une bonne douzaine de chiffres après la virgule. J'ai essayé de changé le format sous excel mais ca n'a rien donné. Je ne sais pas si c'est sous excel ou dans le code qu'il faudrait préciser ?
Merci d'avance.
Merci pour cette réponse !
Alors pour le "SendUsingAccount", ça n'a pas fonctionné. J'ai cherché un peu plus loin et j'ai trouvé que cette propriété n'est disponible que sous Office 2007. Je suis en 2003...je ferai donc sans.
Je vais afficher donc afficher les messages pour remplir le champ manuellement avec un "msg.display"
Pour le second point, ca marche parfaitement ! Petite question cependant : dans mon fichier excel, le format de ma colonne est "nombre" avec 2 décimales. Mais lorsque j'exécute la macro, je retrouve dans le mail le nombre avec une bonne douzaine de chiffres après la virgule. J'ai essayé de changé le format sous excel mais ca n'a rien donné. Je ne sais pas si c'est sous excel ou dans le code qu'il faudrait préciser ?
Merci d'avance.
bonjour
Avec :
msg.Body = Range("A23").Value & Format(ActiveCell.Offset(0, 2).Value,"0.00") & Range("A25").Value
cela devrait être mieux.
Je ne peux tester donc il faut peut-être mettre la virgule au lieu du point : tu regardes le format de ta cellule et tu mets le même.
Avec :
msg.Body = Range("A23").Value & Format(ActiveCell.Offset(0, 2).Value,"0.00") & Range("A25").Value
cela devrait être mieux.
Je ne peux tester donc il faut peut-être mettre la virgule au lieu du point : tu regardes le format de ta cellule et tu mets le même.
Nickel, ça marche super !
Dernière question avant de clore le sujet, quand mon mail s'ouvre avec toutes les infos de mon fichier Excel, la mise en forme du corps n'est pas conservée (gras, soulignements)... une petite idée ?
Merci !!
Dernière question avant de clore le sujet, quand mon mail s'ouvre avec toutes les infos de mon fichier Excel, la mise en forme du corps n'est pas conservée (gras, soulignements)... une petite idée ?
Merci !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
Malheureusement, je crains bien qu'il n'y en ai pas car la procédure fonctionne en mode texte basique et ce n'ai pas fait pour faire du travail soigné.
Malheureusement, je crains bien qu'il n'y en ai pas car la procédure fonctionne en mode texte basique et ce n'ai pas fait pour faire du travail soigné.
Salut,
Pour Outlook,
Outils/Option onglet format du courrier, Format du courrier sélectionner HTML
Pour Outlook Express,
Outils/Option onglet envois format d'envoi du courrier cocher HTML
Normalement le courrier garde la mise en forme
A+
Pour Outlook,
Outils/Option onglet format du courrier, Format du courrier sélectionner HTML
Pour Outlook Express,
Outils/Option onglet envois format d'envoi du courrier cocher HTML
Normalement le courrier garde la mise en forme
A+
Salut,
J'ai Outlook 2003 oui, mais j'ai regardé dans les options et le courrier et par défaut en HTML.
D'autres idées ?
Merci
J'ai Outlook 2003 oui, mais j'ai regardé dans les options et le courrier et par défaut en HTML.
D'autres idées ?
Merci
bonjour
Tu confirmes les doutes que j'avais :
- outlook en HTML c'est très bien à notre époque.
- le passage des données entre excel et outlook, à ma connaissance, se fait en mode texte.
Le passage du formatage est finalement très difficile, car la gestion du formatage excel ne se fait pas en avec les normes HTML mais avec les normes natives excel.
Peut-être en essayant de mettre ton message dans une feuille que tu sauves en HTML et que tu inclus ensuite dans ton message outlook, mais c'est pas simple quand tu as des dizaines de messages à émettre.
Tu confirmes les doutes que j'avais :
- outlook en HTML c'est très bien à notre époque.
- le passage des données entre excel et outlook, à ma connaissance, se fait en mode texte.
Le passage du formatage est finalement très difficile, car la gestion du formatage excel ne se fait pas en avec les normes HTML mais avec les normes natives excel.
Peut-être en essayant de mettre ton message dans une feuille que tu sauves en HTML et que tu inclus ensuite dans ton message outlook, mais c'est pas simple quand tu as des dizaines de messages à émettre.