Mail automatique Excel 2007

Bonjour,

Je suis étudiant et dans le cadre de mon stage je dois faire de la macro excel ( or ce n'est pas mon domaine... ). J'ai effectué pas mal de recherche et j'ai bien avancé mais me voila bloqué sur un point depuis plusieurs jours.

Je détaille, je dois effectuer un renvoie de mail automatique cette partie je l'ai. le probleme c'est que dans ce mail je dois y ajouter une valeur d'une cellule excel (variable ) et je n'arrive pas a copier la cellule A3 feuille 2 (par exemple) dans le message du mail .

ma question ce trouve sur ce passage plus précisément:

.HTMLBody = "Bonjour, <BR><BR>Ce message est un mail automatique, il vous informe que " & Environ("username") & " a mis à jour la main courante.<BR><BR>" _

A la place de " Environ("usurname") je cherche a copier la cellule A3 feuille 2 da maniere a ce que la copie change en fonction de la case.

je vous mets la macro que j'ai en dessous,

en vous remerciant pour toute l'aide que vous pouvez m'apportez .

Sub envoi_mail()

Dim OutApp As Object

Dim OutMail As Object

Dim strbody As String

Dim olFormatHTML As String

MsgBox ("Préparation du MAIL D'INFORMATION AUX UTILISATEURS DE LA MAIN COURANTE. " & Chr(10) & Chr(10) & "la fenêtre du message va s'afficher" & Chr(10) & "Merci de valider l'envoi")

Set OutApp = CreateObject("Outlook.Application")

OutApp.Session.Logon

Set OutMail = OutApp.CreateItem(0)

strbody = "Information sur la mise à jour"

On Error Resume Next

With OutMail

.To = "Administrateur@organisme.fr"

.CC = "Toto@yahoo.fr; <!-- e --><a href="mailto:titi@yahoo.fr">titi@yahoo.fr</a><!-- e -->"

.BCC = ""

.Subject = "Mise à jour de la main courante"

.BodyFormat = olFormatHTML

.HTMLBody = "Bonjour, <BR><BR>Ce message est un mail automatique, il vous informe que " & Environ("username") & " a mis à jour la main courante.<BR><BR>" _

& "<A href=" & """" & "\\Nom_serveur\Repertoire\nom_ficihier.xls" & """" & ">Accéder à la main courante.</A>" & Chr(10) & "<BR><BR>Cordialement"

.Display

End With

On Error GoTo 0

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

essaie ceci :

.HTMLBody = "Bonjour, <BR><BR>Ce message est un mail automatique, il vous informe que " & Sheets("feuille 2").Range("A3") & " a mis à jour la main courante.<BR><BR>" _ 

Bref, remplace Environ("username") par Sheets("feuille 2").Range("A3") sans faute d'orthographe ... et à condition que feuille 2 soit bien feuille 2 !

Merci Steelson,

Une autre personne à été plus rapide que toi sur ce probleme mais elle n'a pas su m'aider sur le 2 eme qui consiste à:

dans le contexte j'ai plusieurs personnes qui sont susceptible de prendre en charge une pièce, pour les personnes 1 ,2, 3, 4 je souhaite que le mail s'envoie à test1@hotmail.fr si c'est une personne 5, 6, 7 ,8 je souhaite que le mail s'envoie à test2@hotmail.fr et ainsi de suite...

Dans la cellule A3 ( oui je l'aime bien celle la) de la feuille 2 pour exemple, il y' aura ou 1, ou 2 , ... bref le nom d'une personne.

Donc je souhaite modifier l'adresse mail en fonction d'un nom dans une cellule

J’espère que tu pourras m'aider et merci pour ta réponse précédente

babuf a écrit :

Une autre personne à été plus rapide que toi sur ce probleme

autre forum ?

babuf a écrit :

elle n'a pas su m'aider sur le 2 eme qui consiste à:

qui n'était pas exposé ici !!

je regarde ...

non sur le même forum (voila le lien pour les intéressés https://forum.excel-pratique.com/excel/macro-envoie-de-mail-automatique-depuis-excel-t93763.html) , j'ai été sur une question posée par un autre utilisateur sur le même style et j'ai demandé si il savait adapter à mon cas, il a su me répondre pour la première partie et j'ai fais comme pour toi j'ai demandé la suite après , ce à quoi il m'a répondue ne pas être un pro ...

Je te remercie de ton aide

pour la suite, 2 solutions :

  • mettre un tableau dans une feuille excel, c'est la solution que je préfère car elle est plus accessible en paramétrage
  • ou bien code comme ci-dessous avec SELECT
    With OutMail
    Select Case Sheets("feuille 2").Range("A3") ' <= la valeur à tester
    Case Is = 6         ' <= si la valeur = 6
       .To = "test2@hotmail.fr"
    Case Is = 5         ' <= si la valeur = 5
       .To = "test2@hotmail.fr"
    Case Is = 4         ' <= si la valeur = 4
       .To = "test1@hotmail.fr"
    Case Is = 3         ' <= si la valeur = 3
       .To = "test1@hotmail.fr"
    Case Is = 2         ' <= si la valeur = 2
       .To = "test1@hotmail.fr"
    Case Is = 1         ' <= si la valeur = 1
       .To = "test1@hotmail.fr"
    Case Else           ' <= si la valeur n'est égale à aucune des valeurs ci-dessus
        .To = "test1@hotmail.fr"
    End Select

etc. etc.

p

petit probleme,

Il m'envoie le mail automatiquement a cette adresse

Case Else ' <= si la valeur n'est égale à aucune des valeurs ci-dessus

.To = "test1@hotmail.fr"

c'est problématique... tu as une idée de pourquoi ( mes valeurs dans le programme et dans la case sont pourtant les mêmes )

a noter que le programme marche avec les chiffres mais pas les noms

Quel est le contenu de Sheets("feuille 2").Range("A3") ?

Mets un bout de fichier (en MP si tu veux). Ou l'intégralité de ta macro.

Problème résolu ... en effet un chiffre est différent d'une lettre ( 0 <> "0"), et donc s'il ne trouve pas la correspondance il prend la valeur par défaut.

Rechercher des sujets similaires à "mail automatique 2007"