Envoi de mail depuis excel plusieurs champs

Résolu
manu7762323 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
manu7762323 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
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 :)

9 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   4 724
 
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 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention  
 
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