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 :

Message erreur lors de la création d'un mail [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut Message erreur lors de la création d'un mail
    Bonjour tout le monde,

    J'ai un message d'erreur qui apparaît et je recherche quel complément de librairie je dois activer

    J'ai testé plusieurs code pris dans les discussions qui fonctionne et je n'ai pas trouvé de tuto sur générer un mail vers outlook.

    Le plus intéressant m'a paru être celui ci :

    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
    35
    36
    37
    38
    Function EnvoiMailSimple()
      ' Création d'une variable de type E-Mail :
      Dim Email As Outlook.Application
      Dim EmailMsg As Outlook.MailItem
      Dim Dest As Outlook.Recipient
      'Dim col As Variant
     
     
    '.......
     
    Set Email = CreateObject("Outlook.Application")
    Set EmailMsg = Email.CreateItem(olMailItem)
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
     
    ChDir ("D:\Documents and Settings\MELOUARIACHI\Mes documents\reporting\")
    chem = CurDir
    chemin = chem & "\" & Nfichier
    Set Email = CreateObject("Outlook.Application")
    Set EmailMsg = Email.CreateItem(olMailItem)
    ' Création de l'e-mail : Titre, Corps du message, destinataire
    For i = 2 To li
     Set Dest = EmailMsg.Recipients.Add(Cells(i, col).Value)
    Next
     
     EmailMsg.Subject = domaine & ":  Demandes enregistrées dans Remedy RS3 au " & datereport
     EmailMsg.Body = "Madame, Monsieur " & Chr$(13) & Chr$(13) & "Je vous prie de trouver ci-joint la liste des demandes enregistrées par l'ECU au " & datereport & ". Cela vous permettra de faire un point sur les tickets qui sont affectés à votre domaine." & Chr$(13) & "Cdt Groupe ECU"
     EmailMsg.Attachments.Add chemin
     EmailMsg.CC = "bruno.beaulieu@atosorigin.com" '; <a href="mailto:eddie.lechevretel@atosorigin.com">eddie.lechevretel@atosorigin.com</a> "
     
    ' Placement de l'e-mail dans la boîte d'envoi :
     EmailMsg.Send
     
     
     'EmailMsg.Attachments
    Set EmailMsg = Nothing
    Set Email = Nothing
    End Function
    Dans les autres codes j'ai un message d'erreur sur la ligne qui génère le mail mais sur celui ci le message d'erreur est sur la ligne 11 "set email..."

    le message est "erreur 429 - un composant active x ne peut pas créer d'objet"

    J'ai activé dans outils/Références vba project plusieurs bibliothèque pour outlook mais apparement il en manque !!!!

    Avez vous une idée ? ou le problème vient il d'ailleurs ?

    Merci pour votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    bonsoir

    Je réessaye une dernière fois car je ne trouve pas la solution !!!

    J'ai placé ce code en essai :
    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
        'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
        ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
        Sub Envoyer_Mail_Outlook()
        Dim ObjOutlook As New Outlook.Application
        Dim oBjMail
        Dim Nom_Fichier As String
     
            Set ObjOutlook = New Outlook.Application
            Set oBjMail = ObjOutlook.CreateItem(olMailItem)
        '---------------------------------------------------------
           'Exemple pour envoyer un classeur en pièce jointe
           'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
           'If Nom_Fichier = "Faux" Then Exit Sub
        '---------------------------------------------------------
           'Ou bien entrer le path et nom du fichier autrement
           Nom_Fichier = "C:\Chemin\NomFichier.ext"
            If Nom_Fichier = "" Then Exit Sub
        '---------------------------------------------------------
             With oBjMail
                .To = "LeClient@gmail.com" ' le destinataire
               .Subject = "Ici c'est l'objet"          ' l'objet du mail
               .Body = "Ici le texte du mail "  'le corps du mail ..son contenu
               .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
               .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
               .Send
            End With
            ObjOutlook.Quit
            Set oBjMail = Nothing
            Set ObjOutlook = Nothing
        End Sub
    et j'obtiens toujours le message d'erreur 429 "un controle active x ne peut pas créer d'objet"

    Avez vous une idée ?

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Corrige ton code comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Dim ObjOutlook As Object, oBjMail As Object
        Dim Nom_Fichier As String
     
        Set ObjOutlook = CreateObject("Outlook.Application")
        Set oBjMail = ObjOutlook.CreateItem(0)
    N'oulie pas le et bonne continuation

  4. #4
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    Bonsoir et merci pour l'aide

    Mais le problème persiste avec le même message sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ObjOutlook = CreateObject("Outlook.Application")

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    encore une erreur de debutant
    confusion latebinding et early binding

    j'ai mis en gros ton erreur dans ton code

    mais avant parlons du late binding

    quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set machin=create("trucmuche.application ")
    machin est forcement un object au depart
    c'est du late binding(déclaration tardive) ce qui t'abstiens d'activer une référence
    mais ton souci c'est que tu cherche a le créer 2 fois avec la même variable donc
    l'ors de la deuxième tentative email n'est plus un Object(vide ) mais bel et bien une instance de l'application d'où le message d'erreur (un composant ne peut pas .creer........)

    tu vois ce qu'il te reste a faire !!?
    ton code avec l'erreur en surgras
    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
    
    Set Email = CreateObject("Outlook.Application")' a partir de la email est une instance de outlook
    Set EmailMsg = Email.CreateItem(olMailItem)
    Set myOlApp = CreateObject("Outlook.Application")'celle la elle sert a quoi,
    Set myItem = myOlApp.CreateItem(olMailItem)
     
    ChDir ("D:\Documents and Settings\MELOUARIACHI\Mes documents\reporting\")
    chem = CurDir
    chemin = chem & "\" & Nfichier
    Set Email = CreateObject("Outlook.Application")'peut pas fonctionner email est déjà une instance de outlook
    Set EmailMsg = Email.CreateItem(olMailItem)
    ' Création de l'e-mail : Titre, Corps du message, destinataire
    For i = 2 To li
     Set Dest = EmailMsg.Recipients.Add(Cells(i, col).Value)
    Next
     
     EmailMsg.Subject = domaine & ":  Demandes enregistrées dans Remedy RS3 au " & datereport
     EmailMsg.Body = "Madame, Monsieur " & Chr$(13) & Chr$(13) & "Je vous prie de trouver ci-joint la liste des demandes enregistrées par l'ECU au " & datereport & ". Cela vous permettra de faire un point sur les tickets qui sont affectés à votre domaine." & Chr$(13) & "Cdt Groupe ECU"
     EmailMsg.Attachments.Add chemin
     EmailMsg.CC = "bruno.beaulieu@atosorigin.com" '; <a href="mailto:eddie.lechevretel@atosorigin.com">eddie.lechevretel@atosorigin.com</a> "
     
    ' Placement de l'e-mail dans la boîte d'envoi :
     EmailMsg.Send
     
     
     'EmailMsg.Attachments
    Set EmailMsg = Nothing
    Set Email = Nothing
    End Function
    je n'est pas regardé le reste du code car je n'utilise pas Outlook mais CDO regarde dans les liens de ma signature si ca t'intéresse

  6. #6
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    bonsoir, merci pour votre aide

    C'est un code que j'ai récupéré sur internet et effectivement je ne comprends pas son utilité !!!
    par contre je bloque avant sur :

    Set Email = CreateObject("Outlook.Application")' a partir de la email est une instance de outlook
    Le message d'erreur est sur cette ligne et il refuse de gérer à priori l'instance ????
    voir un peu plus haut un autre code récupéré beaucoup plus simple qui m'expose au même problème je l'ai déposé a 21h31

    Après l'intervention de OBO29 j'ai rectifié le code mais n'avance pas sur mon problème.
    pour ce code c'est la ligne 9 en cause et donc toujours au moment de la création d'instance.

    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
    'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro,
    ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
    Sub Envoyer_Mail_Outlook()
     
     
    Dim ObjOutlook As Object, oBjMail As Object
    Dim Nom_Fichier As String
     
    Set ObjOutlook = CreateObject("Outlook.Application")
    Set oBjMail = ObjOutlook.CreateItem(0)
     
    '---------------------------------------------------------
       'Exemple pour envoyer un classeur en pièce jointe
       'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
       'If Nom_Fichier = "Faux" Then Exit Sub
    '---------------------------------------------------------
       'Ou bien entrer le path et nom du fichier autrement
       Nom_Fichier = "C:\Chemin\NomFichier.ext"
        If Nom_Fichier = "" Then Exit Sub
    '---------------------------------------------------------
         With oBjMail
            .To = "LeClient@gmail.com" ' le destinataire
           .Subject = "Ici c'est l'objet"          ' l'objet du mail
           .Body = "Ici le texte du mail "  'le corps du mail ..son contenu
           .Attachments.Add Nom_Fichier '"C:\Data\essai.txt" ' ou Nomfichier
           .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
           .Send
        End With
        ObjOutlook.Quit
        Set oBjMail = Nothing
        Set ObjOutlook = Nothing
    End Sub
    Je recherche sur internet et microsoft depuis un moment et il semblerait que se soit un problème de paramétrage mais je ne comprends pas tout car suis un novice !!

    Pour le CDO j'ai jeté un coup d'oeil rapide, celà semble d'un niveau supérieur ?

    Je reste à votre écoute
    et encore merci

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Ton code fonctionne sur ma machine. Je ne peut donc pas t'aider plus.
    Bonne chance pour la suite.

  8. #8
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    Bonsoir,

    Ton code fonctionne sur ma machine. Je ne peut donc pas t'aider plus.
    merci OBO29 pour ton aide mais je le constate depuis le début j'ai un problème de configuration de mon pc que je n'arrive pas à résoudre.

    Quelqu'un d'autre a-t-il des propositions ?

    Merci pour votre aide

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    vu les réponses que tu a eu
    je me pose une question

    a tu seulement paramétré ton Outlook je veux dire par la t'en sert tu déjà sans vba c'est a dire directement avec l'application outlook

    si ca n'est pas le cas ca ne fonctionnera pas

    car tant qu'il n'est pas paramétrer il ne peut pas utiliser de serveur entrant (pop imap )/ sortant(smtp) mot de passe etc......

    en gros tu fait appel a une coquille vide

  10. #10
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    bonjour,

    je viens de l'installer il y a quelques jours en paramétrage automatique avant de faire appel à ces fonctions et j'ai paramétré 2 de mes adresses mail dessus.
    J'ai aussi activé dans la librairie "microsoft outlook 12.0 objet library"

    Il y a peût être quelque chose à faire qui m'a échappé mais je ne sais quoi ?

    merci pour ton aide

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Avec la méthode creatobject, tu n'as pas besoin de activé la librairie Outlook (deactive la)

    Le problème (comme le suggère Patrick) vient soit d'une mauvaise configuration et/ou installation.

    Peut tu envoyer recevoir des mails directement dans Outlook?

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    je viens de l'installer il y a quelques jours en paramétrage automatique avant de faire appel à ces fonctions et j'ai paramétré 2 de mes adresses mail dessus.
    j'avais essayer moi aussi de m'en servir et la configuration automatique me le configurait très mal ,j'avais été obliger de renseigner le serveur (entrant/sortant) ETC.... et encore ca fonctionnait très mal c'est pour cela que j'ai opter pour W.L.MAIL

    A MON AVI TU DOIS AVOIR UN PROBLEME DE CE GENRE

    REPOND A CETTE SEULE QUESTION
    quand tu ouvre Outlook la liste de tes emails est elle présente ou un message d'erreur t'apparait

  13. #13
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 143
    Points : 106
    Points
    106
    Par défaut
    bonjour messieurs,

    merci encore pour me sortir de ce mauvais pas.

    Pour répondre à rdurupt :
    Peut tu envoyer recevoir des mails directement dans Outlook?
    Oui depuis que j'ai installé outlook 2007 j'ai paramétré 2 adresses mail sur outlook et je reçoit et envoie des mails depuis la boîte outlook uniquement.
    A ce jour je n'ai constaté aucun dysfonctionnement sur l'envoie et la réception d'email depuis outlook 2007

    Pour répondre à Patrick :

    quand tu ouvre Outlook la liste de tes emails est elle présente ou un message d'erreur t'apparait
    .

    Je n'avais pas de souvenir de ce genre et je viens de l'ouvrir à l'instant outlook 2007 : j'ai bien la liste des emails et outlook charge les nouveaux emails entrants instantanément.

    Enfin pour rdurupt
    Avec la méthode creatobject, tu n'as pas besoin de activé la librairie Outlook (deactive la)
    J'ai désactivé la librairie sans résultat

    En complément, je viens de vérifier dans les options de outlook si s'était bien outlook qui était définit messagerie par défaut !! A priori c'est bien le cas
    Mais pour en être sûr, où dois je aller voir dans les paramètres WINDOWS 8 ?


    merci pour votre aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/10/2014, 23h06
  2. Réponses: 2
    Dernier message: 13/01/2012, 15h02
  3. Réponses: 1
    Dernier message: 26/05/2005, 13h24
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 13h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 16h47

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