1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    octobre 2006
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2006
    Messages : 643
    Points : 1 094
    Points
    1 094

    Par défaut Un composant activeX ne peut pas créer un objet

    Bonjour,

    Je viens d'installer OUTLOOK 2007 pour automatiser l'envoi de mail pour mon association 1901, j'ai installé la reférence "Outlook 12.0 Object Library"

    Nom : faststone00432.jpg
Affichages : 3473
Taille : 24,1 Ko

    j'ai recopié de l' aide DVP ce début de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub CreationMailEtLienHypertexte()
        Dim OlApp As Outlook.Application
        Dim OlItem As Outlook.MailItem
        'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
     
        Set OlApp = New Outlook.Application
        Set OlItem = OlApp.CreateItem(olMailItem)
    En pas à pas le message "un composant activeX ne peut pas créer un objet..." s'arrête sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlApp = New Outlook.Application
    Que faire ?

    D'avance, Merci
    Michel_M

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    septembre 2011
    Messages
    8 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : septembre 2011
    Messages : 8 075
    Points : 14 182
    Points
    14 182

    Par défaut

    Bonjour,

    Ton code fonctionne avec Office 2013 (en changeant la référence). Si tu as fait un copier / coller, essaie d'entrer en les refrappant les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim OlApp As New Outlook.Application
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set OlApp = New Outlook.Application
    Sinon, remplace cette ligne par :

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

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    octobre 2006
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2006
    Messages : 643
    Points : 1 094
    Points
    1 094

    Par défaut

    Toujours pareil !

    J'ai m^me réecris le début de la procédure sur un nouveau classeur (2007)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub xxx()
    Dim Olapp As Object
     
    Set Olapp = CreateObject("outlook.application")
    End Sub
    je vais essayer de passer en CDO mais...

    Merci pour tout
    Michel_M

  4. #4
    Expert éminent sénior Avatar de rdurupt
    Homme Profil pro
    Développeur .NET
    Inscrit en
    avril 2012
    Messages
    6 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2012
    Messages : 6 121
    Points : 11 982
    Points
    11 982

    Par défaut

    Bonjour,
    supprime ta référence à Outlook tu n'en as pas besoin avec CreateObject!
    Code Outlook : 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
    Sub Test()
    Mail "Sujet", "Message", "Destinataire@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur11.xlsm", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", Pj:="C:\MyTest\Classeur1.xlsm;C:\MyTest\Classeur11.xlsm", DestinataireCopy:="DestinataireCopy.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", DestinataireCopy:="DestinataireCopy.com", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com", DestinataireCopyCacher:="DestinataireCopyCacher@gmail.com"
    Mail "Sujet", "Message", "Destinataire@gmail.com"
    End Sub
    Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
    Set objOutlook = CreateObject("Outlook.application")
    Set MailObj = objOutlook.CreateItem(olMailItem)
    With MailObj
        .To = Destinataire
        .CC = DestinataireCopy
        .BCC = DestinataireCopyCacher
        .Subject = Sujet
        .BodyFormat = 2
        .HTMLBody = Message
        If Trim("" & Pj) <> "" Then
            p = Split(Pj & ";", ";")
            For i = 0 To UBound(p)
                If Trim("" & p(i)) <> "" Then .Attachments.Add Trim("" & p(i))
            Next
        End If
        '.Display 'Can be .Send but prompts for user intervention before sending without 3rd party software like ClickYes
        .Send
    End With
    End Sub

    Code CDO : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Sub test()
     MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""
    End Sub
    Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, DestEnCopy, Objet, Body, Pj)
    ' sub pour envoyer les mails
    Dim msg
    Dim Conf
    Dim Config
    Dim ess
    Dim splitPj
    Dim IsplitPj
    Set msg = CreateObject("CDO.Message") 'pour la configuration du message
    Set Conf = CreateObject("CDO.Configuration") '  pour la configuration de l'envoi
    Dim strHTML
     
    Set Config = Conf.Fields
     
    ' Configuration des parametres d'envoi
    '(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
    With Config
    If Identify = True Then
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = User
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
    End If
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
        .Update
     
    End With
     
     
    'Configuration du message
    'If E_mail.Sign.Value = Checked Then Convert ServeurFrm.SignTXT, ServeurFrm.Text1
     
    With msg
        Set .Configuration = Conf
        .To = Dest
      .cc = DestEnCopy
        .FROM = Expediteur
        .Subject = Objet
    '
     
        .HTMLBody = Body '"<p align=""center""><font face=""Verdana"" size=""1"" color=""#9224FF""><b><br><font face=""Comic Sans MS"" size=""5"" color=""#FF0000""></b><i>" & body & "</i></font> " 'E_mail.ZThtml.Text
                If Pj <> "" Then
            splitPj = Split(Pj & ";", ";")
     
            For IsplitPj = 0 To UBound(splitPj)
                If Trim("" & splitPj(IsplitPj)) <> "" Then
                    .AddAttachment Trim("" & splitPj(IsplitPj))
                End If
            Next
     
        End If
        .Send 'envoi du message
     
    End With
    ' reinitialisation des variables
    Set msg = Nothing
    Set Conf = Nothing
    Set Config = Nothing
     
    End Sub
    Une question bien formulée c’est 100% de la solution (rdurupt) !

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    octobre 2006
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2006
    Messages : 643
    Points : 1 094
    Points
    1 094

    Par défaut

    Bonjour,

    Un grand merci pour ta solution en CDO!

    J'étais passé à autre chose, d'où mon retard, hier,j'avais presque réussi et le dernier obstacle était le passage en html pour éviter les symboles bizarres à la place des caractères accentués; maintenant c'est OK, ouf !

    Super
    Michel_M

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2008
    Messages : 145
    Points : 133
    Points
    133

    Par défaut

    pour ma part je passe par outlook car c'est sur une application professionelle sans acces a internet
    c'est juste une messagerie interne et oui pour les pieces jointe avec .attachments

  7. #7
    Expert éminent sénior Avatar de rdurupt
    Homme Profil pro
    Développeur .NET
    Inscrit en
    avril 2012
    Messages
    6 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Conseil

    Informations forums :
    Inscription : avril 2012
    Messages : 6 121
    Points : 11 982
    Points
    11 982

    Par défaut

    Citation Envoyé par tyjez Voir le message
    pour ma part je passe par outlook car c'est sur une application professionelle sans acces a internet
    c'est juste une messagerie interne et oui pour les pieces jointe avec .attachments
    oui mais là je comprend pas ta remarque tu as les 2 version donc tu choisi!
    Une question bien formulée c’est 100% de la solution (rdurupt) !

  8. #8
    Membre expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    août 2007
    Messages
    2 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : août 2007
    Messages : 2 385
    Points : 3 159
    Points
    3 159

    Par défaut Avertissement

    Si vous utilisez comme moi le code CDO donné par rdurupt (Salut !) ou similaire, et que vous l'utilisez en boucle, vous pourriez faire face à un blocage total du code sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Send 'envoi du message
    à un moment donné de la boucle.

    Pour supprimer ce blocage, ajoutez
    après
    mais aussi après
    Bonne journée.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/05/2009, 08h12
  2. [POO] Un composant ActiveX ne peut pas créer un objet
    Par *.Har(d)t dans le forum JavaScript
    Réponses: 1
    Dernier message: 12/11/2008, 20h35
  3. [POO] un composant activex ne peut pas créer un objet
    Par Zebulon777 dans le forum JavaScript
    Réponses: 0
    Dernier message: 12/03/2008, 16h35
  4. [ADO] Error 429: Un composant activex ne peut pas créer un objet
    Par Pierre Fauconnier dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/05/2006, 07h09
  5. [VS2003] Un composant ActiveX ne peut pas créer un objet
    Par kendras dans le forum Framework .NET
    Réponses: 1
    Dernier message: 28/12/2005, 13h39

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