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 :

Envoyer un mail


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    J'ai crée cette macro afin d'envoyer directement depuis un formulaire Excel un mail à un destinataire fixe.
    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
    Sub Envoi_Email()
    Dim appOutlook As Outlook.Application
    Dim oMail As Outlook.MailItem
    Set appOutlook = CreateObject("outlook.application")
    Set oMail = appOutlook.CreateItem(olMailItem)
    With oMail
        .Subject = "Evénement constaté"
        .Body = "Veuillez trouver ci-joint un événement constaté" _
            & Chr(13) & "Cordialement" & Chr(13) _
            & "Signature"
        .BoodyFormat = olFormatHTML
        .Recipients.Add ("destinataire")
        .Attachements.Add ThisWorkbook.Path & "\Essai.xls"
        .Send
    End With
    appOutlook.Quit
    Set appOutlook = Nothing
    End Sub
    j'ai crée cette macro mais lorsque je l'execute, un message "Erreur de compilation, Type défini par l'utilisateur non défini" survient, et je ne comprend pas pourquoi.
    Quelqu'un voit-il où j'ai fais une erreur svp?
    Merci par avance

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,
    Sur qu'elle ligne?
    As-tu coché la référence a Outlook?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Points : 93
    Points
    93
    Par défaut Cocher la référence à outlook???
    Bonsoir bbil et merci pour ton intervention,
    L'erreur survient sur la ligne 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim appOutlook As Outlook.Application
    Par contre j'ai appris le code dans un bouquin spécialisé et j'ai bien peur qu'il ne m'ait pas tout dit malgrés les 29euros90 que j'ai laché pour -))
    Il n'est nul part question de cocher une référence à outlook. Donc je ne sais pas de quoi tu me parles. Pourrais-tu m'en dire plus stp?

    Merci par avance

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Points : 93
    Points
    93
    Par défaut J'en ai trouvé une partie
    Re bonsoir,
    J'ai continué à chercher et j'ai donc trouvé où cocher la référence à Outlook.
    Du coup mon erreur disparrait.
    Par contre maintenant j'ai une erreur d'execution 438, propriété ou méthode non gérée par cet objet en ligne 11
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .BoodyFormat = olFormatHTML
    Je me demande si mon bouquin est suffisement complet ou si je ne me suis pas lancé dans un truc trop difficile pour moi.

    Une idée?...

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    891
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 891
    Points : 831
    Points
    831
    Par défaut Bonsoir,
    1 "o" à "bodyformat".

    ESVBA

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2012
    Messages : 143
    Points : 93
    Points
    93
    Par défaut Cette solution fonction
    Merci ESVBA et encore merci à bbil de s'être penché sur mon probleme.
    Une fois le o en trop ôté, un probleme survient à la ligne suivante.
    Par contre, pour ceux qui ont suivit le post j'ai trouvé une solution (que je vais maintenant diséquer pour la comprendre) qui fonctionne.
    Je la partage donc :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub SendEMail()
     
    Dim NouveauClasseur As Workbook
     Dim Destinataire As String
     Destinataire = "adresse@hébergeur.fr"
     Dim Objetmessage As String
     Objetmessage = "Sujet du mail"
     
    Application.ScreenUpdating = False
     
    ThisWorkbook.Sheets("Feuil1").Copy
     Set NouveauClasseur = ActiveWorkbook
     NouveauClasseur.SaveAs Objetmessage
     
    Dim ol As Object, myItem As Object
     Set ol = CreateObject("outlook.application")
     Set myItem = ol.CreateItem(olMailItem)
     myItem.To = Destinataire
     myItem.Subject = Objetmessage
     myItem.Body = "Bonjour, ceci est un email avec fichier joint"
      'fichier en cours d'utilisation envoyé en attaché:
     myItem.Attachments.Add ActiveWorkbook.FullName
     myItem.Send
     Set ol = Nothing
     
    Application.DisplayAlerts = False
     With NouveauClasseur
     .ChangeFileAccess xlReadOnly
     Kill .FullName
     Application.DisplayAlerts = True
     .Close False
     End With
     
    End Sub
    J'ai déja compris que cela consiste à copier les informations dans un classeur nouvellement créé car il semble impossible d'envoyer une feuille du classeur contenant la macro (si c'est une erreur, que les pros n'hésitent pas à le dire que je n'induise personne en eereur).
    Je vais maintenant tenter d'inclure directement les informations dans le corps du texte du mail.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27
  2. [VB6] Comment envoyer un mail HTML par Winsocks ?
    Par hedgehog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/05/2004, 10h04
  3. [Debutant(e)]envoyer un mail en jsp
    Par SegmentationFault dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/01/2004, 18h28
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28

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