Envoi de mail de excel vers outlook erreur 429

gregcitt Messages postés 37 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 18 juin 2007 - 24 janv. 2007 à 11:31
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 24 janv. 2007 à 22:45
Hello,

JE fais suite à une question que j'avais déja posé pour laquelle je n'ai pas trouvé de solution.

Ma macro permet l'envoi automatique de mail depuis Excel.
Celle -ci fonctionne sans problême sur la plupart des postes, sauf un, avec lequel la macro rencontre cette erreur :

Erreur d'exécution 429

Un Composant Active X ne peut pas créer l'objet'

Le débogage conduit à la ligne suivante :
Set MAILOBJ = CreateObject("Outlook.Application")

Quelqu'un a-t-il déjà rencontré cette erreur?
 on m'a dit :

Sur le poste qui ne fonctionne pas, va dans les Références (menu Outils), et regarde s'il n'y a pas une référence marquée "Manquante". Si oui, cherche pour une version différente dans la liste.

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 janv. 2007 à 11:38
Salut,

IL est inutile de poster plusieur fois la même question. prend plutôt la peine de répondre à ceux qui eux on pris de leur temps pour essayer de t'aider.

Je te proposais d'ailleurs de m'envoyer le XLS pour voir si chez moi cela ne planterait pas aussi.

D'autre part, essayons de t'aider.
1- De quel type est la variable MAILOBJ.
2- Peu  être que le problème vient d'aute part.

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 janv. 2007 à 11:44
C'est moi qui ai parlé de Références et je n'ai pas eu de réponses... En fait, oui..., on m'a dit que, du fait que tu utilisais CreateObject, tu n'avais pas besoin de Référence mais elle est peut-être cochée tout de même et "Manquante"... (?)
Lorsque tu crées tes macros dans l'éditeur VBA, regarde dans le menu Outils / Références s'il n'y aurait pas de références marquées "Manquante". Si oui, il faut la décocher et trouver la bonne version sur cet ordi ou tout simplement la décocher et utiliser CreateObject qui semble ne pas nécessiter de référence cochée

Autrement, tu pourrais utiliser une autre méthode qui n'utiliserait pas nécessairement OutLook. Il te faudrait ajouter les contrôles MAPI sur un UserForm. J'ai mis un bout de code là-dessus, il n'y a pas très longtemps. Fais une recherche dans les forums. Ça se passera en "transparence" sans ouverture de programme de courriel.

S'il n'y avait pas de fichiers joint, l'API ShellExecute serait un bon choix, mais ça ne passe pas avec les fichiers, même si on dit souvent que oui sur divers sites web.

MPi
0
gregcitt Messages postés 37 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 18 juin 2007
24 janv. 2007 à 16:54
Avant tout, merci pour votre aide

Comme vous avez dû le comprendre je cherchai à figurer sur les premières pages du forum, thta's why, excusez moi pour le manque de déontologie.

Julien je n'avait pas bien compris ce que tu voulai que je t'envoie.
En fait je préfère ne pas l'envoyer car c'est un fichier d'impayés donc confidentiel, et de plus il faudrai que je t'envoie 2 excel qui sont reliés entre eux, donc : trop compliqué

Je viens de regarder dans les références, est-ce que ce sont des références propres au poste ou propres à la macro.
Dans le cas ou ce serait celle de la macro, j'ai cocher toutes celles qui comprenaient "ActiveX".
Sinon je vérifierait demain sur le poste de la personne car elle est absente aujourd'hui

En tout cas merci encore à vous, je donnerai suite.

Ah, oui, sinon Mpi : peut tu me donner des précissions sur Shell Execute, car les mails que j'envoie ne comportent pas de pièces jointes, ça pourrait donc marcher.........
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 janv. 2007 à 22:45
D'une part, tu ne dois pas cocher des références dont tu n'as pas besoin, donc je te dirais de décocher tout ce que tu as ajouté. S'il y a une référence "manquante", elle devrait se situer dans les toutes premières en haut et elle serait noté "MANQUANTE" en majuscules.

Pour ShellExecute, tu dois déclarer l'API en Private sur une feuille de code ou en Public dans un module (préférable...)

Déclaration:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Utilisation:
Dim Tmp As Long
Tmp = ShellExecute(0, "Open", "mailto:" & AdresseCourriel & "?Subject=Sujet&Body=Texte à écrire", 0&, 0&, 1)
Et tu n'a qu'à modifier les parties en rouge.
Attention aux guillemets toutefois...

MPi
0
Rejoignez-nous