Envoi de mail depuis excel plusieurs champs

Résolu/Fermé
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009 - 12 déc. 2008 à 14:21
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009 - 18 déc. 2008 à 16:04
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.

  
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:

9 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
15 déc. 2008 à 19:09
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
0
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009
16 déc. 2008 à 16:43
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.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
17 déc. 2008 à 15:11
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.
0
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009
17 déc. 2008 à 16:03
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 !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
17 déc. 2008 à 20:56
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é.
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
17 déc. 2008 à 21:47
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+
0
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009
18 déc. 2008 à 10:49
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
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
18 déc. 2008 à 15:54
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.
0
manu7762323 Messages postés 11 Date d'inscription lundi 25 juin 2007 Statut Membre Dernière intervention 7 octobre 2009
18 déc. 2008 à 16:04
Oui je vois. Il ne peut donc y avoir aucun lien entre la mise en forme excel et la mise en forme outlook.

C'est pas grave, je ne vais pas me tracasser plus pour ces mails.

Merci pour l'aide en tout cas :)
0