IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

envois d'un mail depuis un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut envois d'un mail depuis un userform
    bonsoir le forum

    je souhaiterait envoyer un mail depuis un bouton envoyer qui se trouve dans un userform tout en récupérent la valeur de plusieurs txtbox et faire une mise en page le tout pour 3 utilisateurs

    cet envois se ferai en passant par ma boite mail outlook 2003 qui passe par un server exchange et si possible sans ouvrir outlook mais bien directement

    merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    tu trouveras plusieurs exemples dans ce lien :
    http://excel.developpez.com/faq/?page=Messagerie

    bonne soirée
    michel

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    j'ai bien regarder la faq plus haut mai j'y arrive pas
    je cherche a envoyer un mail depuis un bouton de mon userform et de la mettre en forme avec la recuperation de plusieur txt box

    du style

    objet: "mon texte"

    corp du mail

    bonjour messieurs,

    veuillez trouver ci dessous le relevé mensuel

    index 1: "txtbox1
    index 2 : txtbox2
    et ainsi de suite

    bien à vous

    le tout envoyer à 3 destinataire via la messagerie par défaut



    merci pour votre aide

  4. #4
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut Mail depuis Excel
    Bonjour,

    je crois qu'il n'est pas possible d'envoyer le mail sans ouvrir Outlook.
    ci-dessous un code que j'ai utilisé dans un appli avec du texte message en html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub envoi_mail()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim olFormatHTML As String
    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 = "Direction@toto.fr;"
            .CC = "Brigitte.bardot@saint.tropez.fr;Raymond.devos@paris.fr"
            .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=" & """" & "\\serveur\partage$\Maincourante2008\22008 Main Courante.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
    A toi d'insérer tes zones de texte dans le corps du message

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    merci
    pour ton info

    mais peux tu me mettre un exemple avec 4 txtbox dans le corp du message car je n'y arrive pas

    j'ai regarder dans la faq ici lus haut j'ai bien trouver ceci pour inserer une plage de cellule mais rien pour y inserer des txtbox


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub envoiPlageCellules_Excel2002()
    ActiveSheet.Range("A1:B5").Select ' la plage de cellules à envoyer
    ActiveWorkbook.EnvelopeVisible = True
     
    With ActiveSheet.MailEnvelope
        .Introduction = "bonjour , ci joint les données ..."
        .Item.To = "destinataire@dvp.fr"
        .Item.Subject = "le sujet"
        .Item.Send
    End With
    End Sub
    je continue a chercher aussi

    merci d'avance

  6. #6
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Bonjour,

    Les TextBox dont tu parles servent-elles à saisir le contenu du mail ou doivent-elles apparaître dans le corps du message qui sera envoyé ?
    Dans le premier cas tu peux faire un UserForm contenant toutes les zones de texte que tu souhaites utiliser
    ou juste utiliser Plusieurs InputBox qui se succèdent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Saisie_Sujet()
    Dim SujetAs String
    Sujet= InputBox("Saisissez le sujet du message", "Sujet du message")
    End Sub
    la variable Sujet peut être utilisée dans la composition du message
    Pour le UserForm c'est plus complexe mais tout à fait faisable.

  7. #7
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour Reveman, ouisansdoute (et les autres)
    Je me permets car j'ai un code proche de ce que tu veux (enfin je pense) que j'ai adpaté.
    Il fonctionne si Outlook est fermé mais demande de valider l'envoi (ce que je voulais), faudra peut-être adapter pour mettre un DisplayAlerts ou Sendkeys.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub EnvoiMail()
     
      Dim MonOutlook As Object
      Dim MonMessage As Object
      Dim corps As String
     
      Set MonOutlook = CreateObject("Outlook.Application")
      Set MonMessage = MonOutlook.createitem(0)
      MonMessage.to = "Dest1@messagerie.com; Dest2@messagerie.com; Dest3@messagerie.com"
      MonMessage.Subject = "Sujet"
        corps = "Bonjour messieurs,"
        corps = corps & Chr(13) & Chr(10)
        corps = "Veuillez trouver ci dessous le relevé menseuel," & Chr(13) & Chr(10)
        corps = corps & UserForm1.TextBox1.Value & Chr(13) & Chr(10)
        corps = corps & UserForm1.TextBox2.Value & Chr(13) & Chr(10)
        corps = corps & UserForm1.TextBox3.Value & Chr(13) & Chr(10)
        corps = corps & UserForm1.TextBox4.Value & Chr(13) & Chr(10)
      MonMessage.body = corps
      MonMessage.send
      Set MonOutlook = Nothing
    End Sub
    A+

    P.S. Je me suis pas amusé à faire des variables pour tout et à les déclarer, je te laisse faire si le code te convient.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    merci tout le monde
    c'est exactement ce que je voulais

    encore merci

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    Salut,

    j'ai essayer ton code sur mon pc equiper de excel 2003 et vista et outlook 2003

    et tout est ok

    par contre a mon boulot

    j'utilise xp pro + excel 2003 + outlook 2003 server exange

    et quand je recois le mail généré j'ai uniquement que la derniere ligne texte du corps de message

    cad

    dans le code

    corps = " bonjour"
    corps = " coprs & userform1.textbox .........

    je recois le mail avec les deux lignes

    par contre si j'ai

    corps = " bonjour"
    corps = " corps & userform1.textbox .........
    corps " cordialement"

    je ne recois que la ligne cordialement dans mon mail

    je ne trouve pas le pourquoi
    si quelqu'un a une idee
    merci

  10. #10
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut Reveman,
    Un petit truc avant de commencer, quand tu mets du code dans le Post, balises le, tu sélectionne le texte qui correspond au code et tu clique sur #
    C'est plus facile à lire.
    Dans ce que tu notes si tu as remis exactement ce que tu as dans ton code, il me semble normal qu'il plante.
    Le principe de la variable dans l'exemple c'est qu'elle reprend son ancienne "valeur" + une nouvelle.
    Donc si tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    corps = " bonjour"
    corps = " corps & userform1.textbox .........
    corps = " cordialement"
    La dernière ligne écrase tout ce que la variable coprs contenait
    Tu devrais écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    corps = " bonjour" & chr(10) 'Chr(10) pour passer à la ligne
    corps = corps & userform1.textbox .........
    corps = coprs & chr(10) & " cordialement" 'Chr(10) pour passer à la ligne
    Si ce que tu as noté dans le post n'est pas tout à fait ton code, je te propose de copier l'ensemble du code que tu utilise.
    Mais si le problème est effectivement lié à la version faudra que quelqu'un d'autre prenne le relais car je suis sur 2003.
    A+

    A+

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 173
    Points : 75
    Points
    75
    Par défaut
    question supplémentaire

    je souhaiterai maintenant envoyer une feuille de mon classeur par mail
    merci de m'aider pour réaliser ce code

  12. #12
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Dans ce cas ajoute ceci en début de code pour récupérer le fichier en cours:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Monfichier = "" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ""
    Et ceci après MonMessage.body = corps par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonMessage.Attachments.Add Monfichier
    Si tu ne veux qu'une feuille, je crois que tu devras d'abord sauver cette feuille dans un nouveau classeur et donc utiliser celui-ci pour l'attachment.

    A+

Discussions similaires

  1. [XL-2003] Probleme envois mail depuis un userform
    Par revemane dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/12/2009, 14h34
  2. PHPMailer n'envoi pas mes mails depuis localhost
    Par andry.aime dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2009, 12h40
  3. postfix - forcer l'envoi d'un mail depuis la queue
    Par navorinco dans le forum Administration système
    Réponses: 0
    Dernier message: 05/06/2009, 14h04
  4. [EasyPHP] Application et envoi d'e-mails depuis ma machine
    Par taffMan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 08/10/2007, 16h15
  5. [VBA-E] Envoi d'un mail depuis Excel avec lien hypertexte
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/05/2007, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo